Z-Stack版本为3.0.2
IAR版本为10.10.1
文章目录
- 一、添加头文件
- 二、定义接收缓冲区
- 三、编写Uart初始化函数
- 四、编写串口回调函数
- 五、函数声明
- 六、函数调用
- 七、可能遇到的问题(function “halUartInit“ has no prototype)
以下所有操作都是在APP层进行,也就是这个文件
一、添加头文件
因为要用到memset函数,所以需要添加头文件
string.h
#include <string.h>
二、定义接收缓冲区
定义一个接收缓冲区,保存接收到的数据
unsigned char RxBuffer
三、编写Uart初始化函数
void halUartInit(void)
{halUARTCfg_t uartConfig;uartConfig.baudRate = HAL_UART_BR_115200;uartConfig.callBackFunc= UART_CBack;uartConfig.configured = TRUE;uartConfig.flowControl = FALSE;uartConfig.flowControlThreshold = 0;uartConfig.idleTimeout = 6;uartConfig.intEnable = TRUE;uartConfig.rx.maxBufSize = 128;uartConfig.tx.maxBufSize = 0;uartConfig.rx.pBuffer = RxBuffer;HalUARTOpen(HAL_UART_PORT_0,&uartConfig);
}
四、编写串口回调函数
接受完一次数据后,可以在这个函数里面做一些事,这里就是通过UART回传数据到串口助手
void UART_CBack(uint8 port,uint8 event)
{uint8 rxlen = Hal_UART_RxBufLen(HAL_UART_PORT_0);if(rxlen != 0){HalUARTRead(HAL_UART_PORT_0,RxBuffer,rxlen);HalUARTWrite(HAL_UART_PORT_0,RxBuffer,rxlen);memset(TxBuffer,'0',128); // 用完一次接收到的数据后清空缓冲区的数据}
}
五、函数声明
这个不用说的,或者你把上面两个函数放在调用它们之前,我是放在最后,所以才需要函数声明。
六、函数调用
七、可能遇到的问题(function “halUartInit“ has no prototype)
解决方案:Error[Pa045]: function “halUartInit“ has no prototype