
1. 引言BlueNRG-LP 是意法半导体第三代低功耗蓝牙单芯片解决方案,兼容低功耗蓝牙 5.2版本。相较于之前的 BlueNRG-1/2 版本,意法半导体对其低功耗蓝牙协议栈进行了升级和优化,引入了 Radio Task 的概念,客户在研发过程中,应切实关注其应用中使用到的Radio Task 数量并在程序中做相应的配置,才能避免相关问题的发生。) V; f7 G8 _6 u t 2. 问题描述: u" Z2 p- w8 F4 r9 F 客户使用两块 BlueNRG-LP 评估板,搭建一主一从测试平台,从设备同时发送传统广播包和扩展广播包,主设备能通过事件 “hci_le_meta_event ”下的子事件“hci_le_extended_advertising_report_event”获取到传统广播数据包,但是始终无法同时扫描到扩展广播包。! G$ _! Z9 N% p! x D" E! R' W% |4 k 3. 问题分析与定位# U' r1 f, C/ `3 a1 | d 第一步测试:3 s) j) [& q+ c 使用相同的 BlueNRG-LP 评估板(STEVAL-IDB011V1)搭建一主一从测试平台,单从验证上述客户问题的角度,本测试无需动用 IDE 工具,可直接烧录 SDK 中预编译好的可执行示例文件。 从设备端烧录 SDK 程序:ST\BlueNRG-LP DK 1.x.y\Firmware\BLE_Examples\BLE_Beacon\STEVAL-IDB011V1\BLE_Beacon_ExtendedAdv.hex, 该程序能同时支持传统广播和扩展广播的发送。; i- m N+ [1 K4 J0 F) o 主设备端烧录 SDK 程序:ST\BlueNRG-LP DK 1.x.y\Firmware\BLE_Examples\DTM\STEVAL-IDB011V1\ DTM_UART.hex,该程序可以和意法半导体提供的 PC 端测试工具 BlueNRG GUI 配合使用,通过该 GUI 工具将该评估板配置成主设备并扫描从设备发出的广播包。可从 GUI 工具界面直接扫描到广播包数据和广播包类型。 第一步测试结果,如图 1 所示,可以同时扫描到传统广播和扩展广播。说明 BlueNRGLP 同时支持扫描传统广播和扩展广播是没有问题的。 : c5 X) U; Y0 S! J _! y c2 w4 a1 I2 y& C: r+ }/ z ![]() 4 t% t( m- H( e) l+ N1 ` 比较分析与客户平台的区别,从设备烧录的一样的程序,主设备端客户使用的基于 SDK 中BLE_SerialPort 参考示例更改的代码,可初步断定该问题处在客户平台主设备端程序上。* o) H# E/ V4 U) o- L# o . i3 d4 ~- R# c T% c7 q0 V 第二步测试: 主设备端重新烧录 SDK 程序:\BlueNRG-LP DK 1.x.y\Firmware\BLE_Examples\BLE_SerialPort\STEVAL-IDB011V1\BLE_SerialPort_Client.hex, 经过调试,发现也无法同时扫描到扩展广播和传统广播,问题现象和客户描述一致。 通过 BlueNRG-LP 编程手册(PM0269) 章节 4 中所述,发现客户问题应该和代码中配置的 Radio Task 数量太小有关,即下图 2 中的宏 NUM_LINKS,当前配置值为 1,即只支持一个 Radio Task。所以无法同时支持扫描传统广播和扩展广播。$ y: a" z9 J! Q$ q/ c/ k f ) s0 F" P7 ~) @! m ![]() 2 ?2 Z0 F# G2 b' ` 完整版请查看:附件 ![]() |
新版STM32Cube for Visual Studio Code开发体验
【STM32N6570-DK评测】3.CubeMX关于DCMIPP和CSI的BUG整理及摄像头使用
经验分享常被误解的开、关总中断
【STM32C0测评】Nucleo-C092开发板功耗测试
【STM32C0测评】Nucleo-C092开发板IIC通信测试(硬件IIC)
【STM32C0测评】Nucleo-C092开发板IIC通信测试(软件IIC)
【STM32C0测评】Nucleo-C092开发板IIC通信测试(硬件软件IIC一网打尽)
【STM32C0测评】Nucleo-C092开发板USART串口测试
【STM32C0测评】Nucleo-C092开发板使用PWM控制板载LED呼吸灯
【STM32C0测评】Nucleo-C092板卡外部中断控制板载LED灯