ST意法半导体
直播中

张超

7年用户 1280经验值
私信 关注
[问答]

为什么使用自定义模板BLE服务器无法获得超过20字节的数据通知

使用自定义模板 BLE 服务器时,我面临需要通知 40 个字节的特征的情况。然而,在 2 个不同的 BLE 主设备上,该特性总是在通知时被截断为 20 个字节。读取另一个特征不截断!
custom_stm.c 和 custom_app.c 文件上的一切似乎都是正确的。自定义服务器工作正常。函数 aci_gatt_update_char_value 以良好的可变长度正确调用。
观看实时表达,整个缓冲区已更新且长度变量正确。
查看 hci_send_req(在 ble_gatt_hci.c 文件中)、rq.cparam 以及 rq.clen,一切似乎都是正确的。
使用 2 个不同的 BLE Master,无法获得超过 20 字节的数据通知。
结果无法通知大于 20 个字节。
你有什么线索吗?

回帖(1)

韩宁

2022-12-1 13:59:37
事实上,默认的 MTU 大小在连接时设置为 23。
外设(服务器)能够处理从 23 到 CFG_BLE_MAX_ATT_MTU(默认为 156)的 MTU。
为了能够通知大于 20 字节的完整特征,应与 BLE Master(客户端)执行 MTU 自动协商。
请注意,所有 BLE 主设备都不兼容大于 23 的 MTU。
举报

更多回帖

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