170806 通信-ZigBee协议栈串口实验

1625-5 王子昂 总结《2017年8月5日》 【连续第307天总结】
A. ZigBee协议栈串口通信
B.

串行简介

串行接口(Serial Interface) 是指数据一位一位地顺序传送,其特点是通信线路简单,只要一
对传输线就可以实现双向通信,从而大大降低了成本,特别适用于远距离通信,但传送速度较
慢。一条信息的各位数据被逐位按顺序传送的通讯方式称为串行通讯。串行通讯的特点是:数据
位的传送,按位顺序进行,最少只需一根传输线即可完成;成本低但传送速度慢。串行通讯的距
离可以从几米到几千米;根据信息的传送方向,串行通讯可以进一步分为单工、半双工和全双工
三种。

串口使用步骤

  串口初始化
  注册串口任务
  串口发送
修改代码的位置主要在APP文件夹下的SampleApp.c和SampleApp.h,如果增加传感器则增加相应的模块驱动到APP里,在SampleApp.c中调用即可

在SampleApp.c中初始化

  基础实验中通常是自己配置寄存器来初始化串口号、波特率等等,在hal_uart.c文件中可以找到封装好的初始化、发送和接收等函数,直接调用即可
  

MT_UartInit();设置串口参数
 void MT_UartInit ()
 {
 halUARTCfg_t uartConfig;
 /* Initialize APP ID */
 App_TaskID = 0;
 /* UART Configuration */
 uartConfig.configured = TRUE;
 uartConfig.baudRate = MT_UART_DEFAULT_BAUDRATE;
 uartConfig.flowContro l = MT_UART_DEFAULT_OVERFLOW;
 uartConfig.flowControlThreshold = MT_UART_DEFAULT_THRESHOLD;
 uartConfig.rx.maxBufSize =MT_UART_DEFAULT_MAX_RX_BUFF;
 uartConfig.tx.maxBufSize = MT_UART_DEFAULT_MAX_TX_BUFF;
 uartConfig.idleTimeout =MT_UART_DEFAULT_IDLE_TIMEOUT;
 uartConf ig.intEnable = TRUE;
 #if defined (ZTOOL_P1) || defined (ZTOOL_P2)
 uartConfig.callBackFunc = MT_UartProcessZToolData;
 #elif defined (ZAPP_P1) || defined (ZAPP_P2)
 uartConfig.callBackFunc = MT_UartProcessZAppData;
 #else
 uartConfig.callBackFunc = NULL;
 #endif
 /* Start UART */
 #if defined (MT_UART_DEFAULT_PORT)
 HalUARTOpen (MT_UART_DEFAULT_PORT, &uartConfig);
 #else
 /* Silence IAR compiler warning */
 (void)uartConfig;
 #endif
 /* Initialize for ZApp */
 #if defined (ZAPP_P1) || defined (ZAPP_P2)
 /* Default max bytes that ZAPP can take */
 MT_UartMaxZAppBufLen = 1;
 MT_UartZAppRxStatus = MT_UART_ZAPP_RX_READY;
 #endif
 }

其中uartConfig.baudRate = MT_UART_DEFAULT_BAUDRATE;是配置波特率,右击go to definition of可以找到MT_UART_DEFAULT_BAUDRATE的定义,将其修改为指定的即可
uartConfig.flowControl = MT_UART_DEFAULT_OVERFLOW;是配置流控,同样方法可以通过修改定义为TRUE/FALSE来改变。默认是打开流控的,注意如果只连了TX/RX2根线需要关闭流控

然后添加注册语句
MT_UartRegisterTaskID(task_id); //注册串口任务任务

最后使用即可

HalUARTWrite(0,"UartInit OK\n", sizeof("UartInit OK\n")); //串口发送

C. 明日计划
ZigBee协议栈

你可能感兴趣的:(单片机)