【WCH蓝牙系列芯片】-基于CH582开发板—蓝牙MTU
-------------------------------------------------------------------------------------------------------------------------------------
MTU是指最大传输单元,在一个传输单元中的有效传输数据,够传输的最大数据量(多少字节可以一次性传输到对方)。
一、主机
在主机中,如果想要修改单个连接最大包长度,可以在config.h中修改BLE_BUFF_MAX_LEN的值,BLE_BUFF_MAX_LEN=516
在主机程序中可以看到,更新MTU值的部分;由设置的BLE_BUFF_MAX_LEN减去4之后,可以得到最大的交互的MTU值。
通过串口可以看到更新后的MTU的值
二、从机
在从机例程中,添加预编译处理,将BLE_BUFF_MAX_LEN设置为516
通过手机的BLE调试助手去连接蓝牙后,根据实际的蓝牙包的数据长度,调整交互的MTU值,范围在23-512。
通过串口可以观察,手机端将MTU改为512,通过串口打印看到MTU更新的值。
三、从机主动发起交互MTU值
在从机中也可以通过添加程序去主动修改MTU的值,这样就不需要主机那边修改,再进行主从连接之后协商。
第一步:在主机初始的部分,添加client权限
第二步:在预编译器中,将BLE_BUFF_MAX_LEN设置为516
第三步:在蓝牙建立连接之后,调用GATT ExchangeMTU来修改MTU的值。
通过串口打印来观察主动更新MTU值可以实现。