问题描述
在智能标识牌上使用ESP32-S3-WROOM-1U模组,ESP-IDF版本为idf5.0.2时,客户在ESP32-S3模组烧录运行esp-iot-solutionexamples/bluetooth/ble_ota例程的时候,编译烧录完成后,在EspBleOTA App中无法找到蓝牙设备,用Nrf Connect App是可以搜索到该蓝牙设备的,这是为什么呢?
解决思路
了解客户使用的是Android手机后,工程师基于例程进行复现测试,测试现象与客户一致。工程师通过资料及案例分析,发现Android EspBleOTA APP使用的蓝牙4.0和蓝牙5.0是两套不同的API,所以APP使用的蓝牙4.0 API在搜索设备时,只能搜索到使用相同或更低版本蓝牙协议的设备。
当蓝牙设备配置为5.0时,由于某些5.0特性的存在,导致4.0版本的API无法正确识别和搜索到设备。蓝牙5.0引入了一些新的特性,如LE扩展广播和2M PHY等,这些特性可能会改变设备的广播行为或数据格式。如果你的APP使用的4.0 API不支持这些新特性,那么它可能无法正确解析来自5.0设备的广播数据,从而无法搜索到设备。因此,如果APP只支持蓝牙4.0,那么你的蓝牙设备应该配置为4.2或更低版本,并关闭可能影响设备搜索的5.0特性。这样APP才能正确搜索到设备了。
解决方案
通过menuconfig进行配置:将BLE 5.0特性关闭,只保留BLE 4.2特性。重新编译固件烧录到ESP32-S3-WROOM-1U模组,使用Android EspBleOTA APP 可以正确扫描到设备。
-
蓝牙
+关注
关注
114文章
5804浏览量
170151 -
AI
+关注
关注
87文章
30665浏览量
268830 -
ESP32
+关注
关注
18文章
968浏览量
17194
发布评论请先 登录
相关推荐
评论