、
测试手机:Iphone 12
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
您好,
根据您提供的信息,BLE MTU配置为:255字节。
您需要确认Iphone12所支持的MTU值是否大于您要传输的数据大小(248字节)。
您可以查看下GATT_ExchangeMTU的返回值是多少?
固定信道数据包受到以下限制:MAX_PDU_SIZE - L2CAP_HDR_SIZE
您可以参考以下链接中关于如何配置更大MTU的详细做法:https://dev.ti.com/tirex/content/simplelink_cc13x2_26x2_sdk_5_20_00_52/docs/ble5stack/ble_user_guide/html/ble-stack-5.x/gatt.html#maximum-transmission-unit-mtu
收到最新跟进的问题。
1.当您将BLE-MTU-LEN特征值长度改为200、243、244时,实际传输的数据包长度会+7:
这可能是由于协议头部或尾部添加了一些附加信息。
2.特征值长度为245、246、247、248时,可以抓取到数据包,但是实际长度保持251不变。
3.特征值大于248就无法获取数据包,您的猜测应该是正确的。
下图描述了当SDU+L2CAP Header小于等于MAX-PDU-SIZE时,就只会传输SDU+L2CAP Header值。
数字1和3并不代表存储了特定的数据,只是数学计算中的数值,这个操作只是简单地对ATT_MTU进行减法运算。
BLE 协议里规定一个属性的最大长度为 ATT_MTU 值减去 1 个字节,这样可以确保在传输数据时不超过规定的最大限制。
但对于通知,有额外的长度限制,ATT_MTU 值减去 3 个字节作为有效的数据长度。
例如,如果ATT_MTU 的值为 23 ,通知的有效数据长度为 20 字节。
为您提供两个链接,请参阅,希望对您有帮助:
请查看 BLE5-Stack 用户指南 (ti.com) 的 GATT 章节.
有关详细信息,请参阅蓝牙核心规范版本 5.2的 MTU 交换部分。