STM32WB15CC Nucleo板自定义BLE代码无法被发现求助
STM32WB15CC BLE设备无法被发现的解决方案
你的问题出在新项目里的广播UUID配置上:BleApplicationContext.BleApplicationContext_legacy.advtServUUID[0] = NULL;BleApplicationContext.BleApplicationContext_legacy.advtServUUIDlen = 0;
这两行把广播携带的服务UUID设为空且长度为0,导致扫描设备无法识别你的BLE设备。而官方p2pserver例程里会正确配置广播的服务UUID信息,所以能被正常发现。
修复方法:
- 修改app_ble.c里的上述两行代码,配置有效的服务UUID。比如用16位自定义UUID的话:
// 替换为你实际使用的服务UUID(小端序) const uint8_t custom_service_uuid[] = {0xXX, 0xYY}; BleApplicationContext.BleApplicationContext_legacy.advtServUUID[0] = (uint8_t *)custom_service_uuid; BleApplicationContext.BleApplicationContext_legacy.advtServUUIDlen = UUID_TYPE_16; - 如果用128位UUID,把
UUID_TYPE_16换成UUID_TYPE_128,同时UUID数组要对应16个字节的小端序值。 - 确保广播模式配置为可发现类型,比如在BLE配置里将
CFG_BLE_ADV_TYPE设置为ADV_IND(可连接广播)或ADV_SCAN_IND(可扫描广播)。 - 检查BLE初始化流程,确认
aci_gap_set_advertising_enable(ENABLE)函数已被正确调用启动广播。
额外排查点:
- 确认开发板的BLE天线连接牢固,排除硬件信号问题。
- 检查BLE栈的初始化状态,确保没有初始化失败的情况。
内容的提问来源于stack exchange,提问作者Purnima
相关产品推荐
相关产品推荐

