测试设备:
- ESP32 开发板做 BLE Server
nRF Connect
APP 做 BLE Client
测试例程:
说明:
ESP32 BLE Server 本地协商 MTU 最大支持 517 ,BLE Server 与 BLE Client 通信需要二者共同协商 MTU Size。
- MTU 主动协商必须通过 BLE client (手机端 app)发出。
- 手机端的 MTU 由手机端自行定义,最终通信的 MTU 选择两端 MTU 较小的那一个。
- 更新一个较大的 MTU 的好处就是单包可以发送更长的数据了, 一包最长是(
MTU size - 3
)
如何进行 BLE MTU Size 协商?
- 以 esp-idf/examples/bluetooth/bluedroid/ble/gatt_server 例程为例,ESP32 Server 端需要修改 esp_ble_gatt_set_local_mtu(500); 参数。
- 手机 APP 端在建立 BLE 连接成功后,需要进行如下 MTU 设置:
如下截图为 “
nRF Connect
” APP