TI-LAUNCHXL-CC2640R2通过HCI脚本实现BLE广播失败求助
问题原因及解决方法
1. 开发板未刷入HCI专用固件
TI-LAUNCHXL-CC2640R2出厂默认固件并非HCI UART模式固件,直接通过USB连接PC无法响应HCI命令,这是导致广播失败的核心原因之一。
- 解决方法:
- 下载TI官方的SimpleLink CC2640R2 SDK,在SDK路径下找到HCI固件(通常位于
simplelink_cc2640r2_sdk_x_xx_xx_xx\examples\rtos\CC2640R2_LAUNCHXL\ble5stack\hci\hex目录) - 使用Uniflash工具将HCI固件刷入开发板,确保固件版本与你使用的HCI测试仪命令集兼容。
- 下载TI官方的SimpleLink CC2640R2 SDK,在SDK路径下找到HCI固件(通常位于
2. HCI串口通信链路未正确配置
仅通过USB连接时,需确保PC串口参数与HCI固件的默认参数完全匹配:
- 默认HCI UART参数为:波特率115200、8位数据位、1位停止位、无校验无流控
- 解决方法:
- 在HCI测试仪中设置对应串口参数,先发送
HCI_Reset命令,若能收到复位完成的响应,说明通信链路正常。
- 在HCI测试仪中设置对应串口参数,先发送
3. 广播脚本的命令逻辑或参数错误
从提供的脚本截图来看,需重点检查以下关键项:
- 广播数据长度:
HCI_LE_Set_Advertising_Data命令中的长度字段必须与实际广播payload长度一致,且总长度不能超过31字节 - 命令执行顺序:必须先设置广播参数、广播数据,最后发送
HCI_LE_Set_Advertise_Enable(0x01)命令开启广播 - 广播参数合法性:
- 广播类型设为0x00(可连接非定向广播)或0x02(可扫描非定向广播)
- 通道映射需设为0x07(同时启用37、38、39三个广播通道)
- 广播间隔需在0x0020~0x4000的范围内(单位为0.625ms)
4. 硬件使能与供电排查
- 检查开发板跳线:确认SW1、SW2的跳线设置符合出厂默认(无误改动),保证射频模块未被硬件禁用
- 确认供电正常:USB连接后,开发板电源指示灯亮起,排除供电不足导致射频无法工作的情况
5. 手机端排查
- 重启手机蓝牙,确保nRF Connect应用已获得蓝牙访问权限
- 远离WiFi信号强或BLE设备密集的区域,避免广播信号被干扰
内容的提问来源于stack exchange,提问作者Rohit Gupta
相关产品推荐
相关产品推荐

