文档详情

无线传感器网络技术与应用(第2版)课件 薛君 项目5--8 蓝牙无线通信技术应用设计---NB-IOT无线通信技术应用设计.pptx

发布:2025-04-16约9.9千字共153页下载文档
文本预览下载声明

项目五

蓝牙无线通信技术应用设计;任务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来输出信

显示全部
相似文档