无线传感器网络技术与应用(第2版)课件 薛君 项目5--8 蓝牙无线通信技术应用设计---NB-IOT无线通信技术应用设计.pptx
项目五
蓝牙无线通信技术应用设计;任务5.1基于BLE协议栈的串口通信;【任务描述】
设计蓝牙模块与PC串口通信系统,要求蓝牙模块上电时,向串口发送“HelloNEWLab!”,并在PC的串口调试软件上显示;另外,在串口调试软件上发送信息给蓝牙模块时,蓝牙模块收到信息后,立刻原样返回串口接收到的数据给串口调试软件,并显示出来。
【任务环境】
硬件:NewLab平台1套、蓝牙模块1个、PC机1台。
软件:Windows7/10,IAR集成开发环境,协议栈BLE-CC254x-1.3.2,串口调试助手。
【必备知识点】
蓝牙技术概念
蓝牙协议栈安装与使用;5.1.1蓝牙技术概念;【任务实训步骤】;第3步,串口初始化。
打开工程中NPI文件夹下的npi.c文件,串口初始化函数
voidNPI_InitTransport(npiCBack_tnpiCBack)对串口号、波特率、流控、校验位等进行配置。
voidNPI_InitTransport(npiCBack_tnpiCBack)
{halUARTCfg_tuartConfig;
uartConfig.configured=TRUE;
uartConfig.baudRate=NPI_UART_BR;
uartConfig.flowControl=NPI_UART_FC;
uartConfig.flowControlThreshold=NPI_UART_FC_THRESHOLD;
uartConfig.rx.maxBufSize=NPI_UART_RX_BUF_SIZE;
uartConfig.tx.maxBufSize=NPI_UART_TX_BUF_SIZE;
uartConfig.idleTimeout=NPI_UART_IDLE_TIMEOUT;
uartCEnable=NPI_UART_INT_ENABLE;
uartConfig.callBackFunc=(halUARTCBack_t)npiCBack;
(void)HalUARTOpen(NPI_UART_PORT,uartConfig);
return;
};第4步,串口发送数据。
打开simpleBLEPeripheral.c文件中的初始化函数
voidSimpleBLEPeripheral_Init(uint8task_id),在此函数中添加NPI_InitTransport(NULL),在后面再加上一条上电提示HelloNEWLab!的语句,添加头文件语句:#include“npi.h”。
连接下载器和串口线,下载程序,就可以看到串口调试软件收到HelloNEWLab!的信息,如图所示,通过NPI_WriteTransport(uint8*,uint16)函数实现串口发送功能。
;第5步,串口接收数据。
在simpleBLEPeripheral.c文件声明串口回调函数staticvoidNpiSerialCallback(uint8port,uint8events),并在voidSimpleBLEPeripheral_Init(uint8task_id)函数中传入串口回调函数,将NPI_InitTransport(NULL)修改为:NPI_InitTransport(NpiSerialCallback)。
当串口特定的事件或条件发生时,操作系统就会使用函数指针调用回调函???对事件进行处理。具体处理操作在回调函数中实现。
staticvoidNpiSerialCallback(uint8port,uint8events)
{(void)port;
uint8numBytes=0;
uint8buf[128];
if(eventsHAL_UART_RX_TIMEOUT) //串口有数据
{numBytes=NPI_RxBufLen(); //读出串口缓冲区有多少字节
if(numBytes)
{NPI_ReadTransport(buf,numBytes); //从串口缓冲区读出numBytes字节数据
NPI_WriteTransport(buf,numBytes);//把串口接收到的数据再打印出来
}
}
};第6步,串口显示SimpleBLEPeripheral工程初始化信息。
TI官方的例程是利用LCD来输出信