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.

CC2642R: CC2642做从机,手机连接之后,CC2642请求更新MTU不成功,重试无效

Part Number: CC2642R

CC2642做从机,手机连接之后,CC2642请求更新MTU,抓包看APP没有应答MTU请求,程序超时500ms会重新调用GATT_ExchangeMTU接口更新MTU,返回

blePending(0x16),没有更新成功每隔500ms再调用1次,重复40次一直都是这个返回值,并且抓包没有发出MTU请求了。必须断开重连才能恢复,这个是不是协议栈没有超时退出机制导致一直在请求MTU更新状态,这个除了断开连接还有其它方法吗

SDK版本:simplelink_cc13x2_26x2_sdk_5_20_00_52

环境:IAR

  • 您好,

    这看起来是手机不符合蓝牙规范,因为它应该已经回答了 MTU 交换过程,并且在前一个未终止的情况下不应启动新的 MTU 交换过程。

    能否请您检查使用其他手机时该问题是否重现?

  • 其它手机也有复现,如果请求MTU更新之后,对方没有回复。协议栈不会重试或者超时吗。那样意味着当前连接下MTU永远更新不了了

  • 您好,

    您能否具体说明所测试手机的型号以及操作系统版本?

    MTU Exchange 由 BLUETOOTH CORE SPECIFICATION Version 5.3 | Vol 3, Part F, §3.4.2定义。如您所见,MTU Exchange 是一个Attribute Protocol PDU。对于 LE 设备,Attribute Protocol PDU 通过 L2CAP 通道发送,该通道的要求明确规定不应刷新数据包(参见BLUETOOTH CORE SPECIFICATION Version 5.3 |Vol 3, Part G, §5.2.2)。

    在我看来,重新发送 MTU 请求不是这里的解决方案。我宁愿建议关闭连接并自动重新建立连接或使用默认 MTU。

  • 从用户体验看,断连再重连影响连接速率。做手机定位的产品,用户往车辆走近时,如果断连再重连需要更多的时间,然后手机已经到车辆跟前了,定位就失效

  • 您好,

    已帮您同步工程师,您的手机是鸿蒙系统我们不确定国外工程师是否了解相关。

    有结论及时联系您。

    这边您是否也可以尝试使用其它型号的手机(安卓)去做一下相应测试?