ST意法半导体
直播中

凌流浪

9年用户 1063经验值
擅长:可编程逻辑 电源/新能源
私信 关注
[问答]

请教大神BlueNRG使用128位服务总是出错是何原因

我在 NUCLEO-L476RG 板上使用 X-NUCLEO-BNRG2A1 扩展板。
我可以使用 aci_gap_update_adv_data() 公布 16 位和 32 位服务,但尝试使用 128 位服务总是以“BAD PARAMETER”错误结束。我错过了什么?(我使用单个 AD_TYPE_128_BIT_SERV_UUID_CMPLT_LIST 命令调用 aci_gap_update_adv_data())。



回帖(1)

刘倩

2023-1-4 15:39:24
请参考ACI文档,BlueNRG GUI安装后位于
在 ACI_GAP_UPDATE_ADV_DATA 的描述中:
此命令可用于更新特定 AD 类型的广告数据。如果指定的 AD 类型不存在,则将其添加到广告数据中。如果更新后总广告数据长度超过 31 个八位字节,则拒绝该命令并保留旧数据。
或者,您可以选择使用(SIG 标准)HCI 而不是 ST 特定的 ACI:HCI_LE_SET_ADVERTISING_DATA。
LE_Set_Advertising_Data 命令用于设置在具有数据字段的广告数据包中使用的数据。正如 [第 3 卷] C 部分第 11 节中所定义的,只有 Advertising_Data 的重要部分在广告数据包中传输(参见蓝牙规范 v.4.1,第 2 卷,E 部分,7.8.7)
这样你每次都有 31 字节的限制,来设置整个数据。
HCI调用序列供参考:


  • HCI_LE_Set_Advertising_Parameters()
  • HCI_LE_Set_Advertising_Data()
  • HCI_LE_Set_Scan_Resp_Data()
  • HCI_LE_Set_Advertise_Enable()
举报

更多回帖

发帖
×
20
完善资料,
赚取积分