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