在蓝牙低功耗(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字节的数据了
后来的可以尝试借鉴下