EFR32MG裸机工程-4-UART

转载请注明出处,谢谢!

Newbit-Msming 2018-09-19

环境:Windows 10、Simplicity Studio 4

SDK: Gecko SDK Suite

工程:自建

1、 参考《EFR32MG裸机工程-1-新建》,新建一个空白工程;

2、 在工程中点击右键,New -> Other ->Simlicity Studio -> Simplicity Configurator Document -> Next,填写路径和文件名。
EFR32MG裸机工程-4-UART_第1张图片
3、 打开.hwconf文件,并添加USART0,注意下图标号“4”,好像不能手动添加最后的几行,解决方法是直接更改文本文件,文本如下:











EFR32MG裸机工程-4-UART_第2张图片

4、 添加Serial,需要添加的文本如下:





改完后,保存或者在下图左边的区域点击右键-> Generate Source就会自动生成代码文件“hal-config.h”
EFR32MG裸机工程-4-UART_第3张图片

5、 选中工程右击:”Project Name” -> ”Properties” -> ”C/C++ Build” -> ”Project Modules” -> “HAL Config” - > “SERIAL”,双击 ”SERIAL” 添加 ”SERIAL” 模块。
EFR32MG裸机工程-4-UART_第4张图片
6、 参考步骤3、4、5添加”LED”和”BUTTON”模块。

7、 添加必要的路径和宏定义,如下图。
EFR32MG裸机工程-4-UART_第5张图片

8、 新建一个com.c文件取代添加SERIAL模块时链接到工程的文件,然后注释一行代码,因为这行代码需要链接很多文件,在简单的工程不需要这么麻烦,代码如下:
//assert(false);
assert
EFR32MG裸机工程-4-UART_第6张图片
9、 还有很多文件需要添加和链接,具体请查看附件。

10、 main函数代码如下,将从UART收到的数据发回去:

#include "em_device.h"
#include "em_chip.h"
#include PLATFORM_HEADER
#include "stack/include/ember-types.h"

#include "led.h"
#include "button.h"
#include "com.h"
#include "serial/serial.h"

unsigned long i;
uint8_t data[20];
uint16_t len = 0;
uint16_t readByte;
uint16_t startTime;

int main(void)
{
  /* Chip errata */
  CHIP_Init();

  halInternalInitLed();
  halInternalInitButton();
  emberSerialInit(COM_USART0, 115200, 0, 1);
  /* Infinite loop */
  while (1) {

	  len = emberSerialReadAvailable(COM_USART0);
	  if(len)
	  {
		  i=0xFFF;
		  while(i--);
		  len = emberSerialReadAvailable(COM_USART0);
		  if(len)
		  {
			  halToggleLed(BOARDLED0);
			  emberSerialReadData(COM_USART0, data, len, &readByte);
			  emberSerialPrintf(COM_USART0, "RX %d %d\n", len, readByte);
			  emberSerialPrintf(COM_USART0, data, readByte);
			  emberSerialPrintf(COM_USART0, "\n");
		  }
		  len = 0;
	  }
  }
}

11、 烧录的时候烧录bin或者hex文件;

12、 代码请查看附件。

13、 对于EFR32MG系列来说,会使用Silicon Labs配套的协议SDK才是重点,而且裸机工程用处不大,使用起来也比较复杂,所以知道大概原理就好,其他外设就不去摸索了。

14、 附上一个官方的裸机工程代码包,里面包含了各种各样外设例子,不过有些芯片没有对应的例程,自己改一下就行了。

本例代码:EFR32MG1P132F256GM48-UART
代码包链接:EFR32外设基础例程

常驻:NewBit Studio

你可能感兴趣的:(ZigBee,EmberZNet)