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"));就可以使用这个函数发送消息了。