FR800X central notify接收数据最大只能接收20个字节,超过的丢失
-
FR800X central notify接收数据最大只能接收20个字节,超过的丢失,需要配置什么位置修改这个最大接收长度?
测试过发送端发出50个字节,用其他工具是能够正常接收到的,但是在FR800X central 设备中只接收到了20个字节,p_msg->param.msg.msg_len = 20
-
在蓝牙低功耗(BLE)协议里,默认的 ATT_MTU(Attribute Protocol Maximum Transmission Unit)值为 23 字节,刨除 3 字节的协议开销后,应用层实际能够使用的有效载荷最多是 20 字节。若要让 FR800X 芯片的 Central 端收发数据量超过 20 字节,可按以下方法对 MTU 进行协商并调整:
在连接完成 后调用
void gap_set_mtu(uint16_t mtu); //修改MTU的大小
void gatt_mtu_exchange_req(uint8_t conidx); //协商修改然后会触发事件:GAP_EVT_MTU
再次查询就可以看到已经修改为自己需要的大小然后再进行收发就可以发现数据已经可以发送超过20字节的数据了
后来的可以尝试借鉴下