曾经曾经的一篇关于串口收发的博客,是直接使用串口中断收发的,虽然这样实现了收发功能,但是对于大量数据传送的时候,就会出现数据收发不及时的情况,无意间发现了一种更为简单的方式,十分方便快捷~
BLE协议栈中对于串口收发已经封装的很彻底了,主要的函数都在NPI.c 实现了,只要调用就可以了。当然串口的配置是在NPI_InitTransport函数中,改变相应的配置是在NPI.h中。
硬件原因,所以串口使用的是uart 0 (alt.2) 收发引脚在P1.4 和P1.5 上,所以初始化的时候需要进行一些修改。
宏定义:
HAL_UART=TRUE
去掉电源管理定义 :xPOWER_SAVING
在SimpleBLECentral_Init中进行初始化:
/************* uart init ************************************/
NPI_InitTransport(NpiSerialCallback);
PERCFG = 0x01; //位置1 P1口
P1SEL = 0x30; //P1_4,P1_5用作串口(外部设备功能)
U0CSR |= 0x80; //设置为UART方式
NPI_WriteTransport("Hello W