1.要想使用协议栈的串口通信,首先要知道串口通信所在的头文件,分别是
#include "hal_uart.h"
#include "MT_UART.h"
2.知道了串口通信所在的头文件以后,就需要知道串口通知所使用的几个基本函数:
首先是初始化函数:它的作用是确定是否使能改串口,还有确定该串口的波特率,回调函数等信息,可以参考我的的初始化:
void UartInitPort0(void )
{
halUARTCfg_t uartConfig;//顶一个串口结构体
uartConfig.configured =TRUE;//串口配置为真
uartConfig.baudRate =HAL_UART_BR_115200;//波特率为115200
uartConfig.flowControl =FALSE;//流控制为假
uartConfig.callBackFunc = rxCB;//这个是 回调函数的函数名
HalUARTOpen(HAL_UART_PORT_0,&uartConfig);// 打开串口0
}
3.初始化函数编写完成后就可以编写回调函数,回调函数中需要用到协议栈的一个数据读取函数,我们可以在回调函数中加入我们想要实现的操作:
extern uint16 HalUARTRead ( uint8 port, uint8 *pBuffer, uint16 length );
函数作用:读取 port 串口 将 length 字节内容读取到 pBuffer
static void rxCB(uint8 port,uint8 event)
{
unsigned char j=0,uartbuf[128]={0x00};
//HalUARTRead(0,uartbuf,1);
while (Hal_UART_RxBufLen(0)) //检测串口数据是否接收完成
{
HalUARTRead (0,&uartbuf[j], 1); //把数据接收放到buf中
j++; //记录字符数
}
}
4.这些都做完以后我们就可以再samplapp里面加入头文件在SampleApp_Init放入UartInitPort0(void )(),然后就可以调用HalUARTWrite(0,"UART_OPEN_SUFFCESS",sizeof("UART_OPEN_SUFFCESS"));就可以使用这个函数发送消息了。
本文介绍了如何使用协议栈进行串口通信,包括需要包含的头文件如hal_uart.h和MT_UART.h,以及串口初始化函数UartInitPort0,回调函数rxCB,其中涉及HalUARTRead和HalUARTWrite函数用于数据读写。最后,演示了在SampleApp中如何调用这些功能。
&spm=1001.2101.3001.5002&articleId=130398415&d=1&t=3&u=748630e0035d4fab9e795d23c70012e6)
2280

被折叠的 条评论
为什么被折叠?



