【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值可以实现。

posted on 2024-03-08 17:27  凡仕  阅读(238)  评论(0编辑  收藏  举报