You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

BlueNRG2(STEVAL-IDB008V1M)自定义主服务数量提升咨询

BLUENRG-2(STEVAL-IDB008V1M)自定义主服务显示数量限制解决办法

BLUENRG-2出现最多显示3个自定义主服务的问题,核心原因是BLE广播包的有效载荷限制以及模块自身的GATT资源约束,以下是具体解决思路:

  • 广播载荷容量限制:BLE广播包最大有效载荷为31字节,若使用128位自定义UUID,每个UUID占16字节,3个UUID就已经远超上限,系统会自动截断超出部分,导致第4个服务无法出现在广播中。
    解决方式:

    1. 仅在广播中放入关键服务的UUID,剩余服务通过GATT服务发现流程获取。初始化服务时,不要将第4个服务的UUID加入GAP_ADTYPE_COMPLETE_LIST_128BIT_SERVICE_UUIDS或GAP_ADTYPE_INCOMPLETE_LIST_128BIT_SERVICE_UUIDS集合,客户端连接后调用GATT_DiscoverPrimaryServices即可发现该服务。
    2. 改用16位自定义UUID(蓝牙SIG预留自定义范围为0xFF00-0xFFFE),每个UUID仅占2字节,4个UUID共8字节,结合其他必要广播数据(如设备名称、标志位)完全可容纳在31字节内,扫描时即可显示全部服务。
    3. 精简广播冗余数据:缩短设备名称、移除不必要的AD单元(如电池电量、TX功率等),为服务UUID腾出更多空间。
  • GATT资源耗尽:BLUENRG-2的GATT资源(内存、属性表条目)有限,若第4个服务初始化失败,自然无法被发现。
    解决方式:

    • 检查aci_gatt_add_serv接口的返回值,确保返回BLE_STATUS_SUCCESS。若返回资源不足错误,需精简服务特征:减少不必要的描述符(如去掉非必需的Client Characteristic Configuration描述符)、压缩特征值长度,释放GATT资源。

内容的提问来源于stack exchange,提问作者Tejas Patil

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 08:53:12