前言
泰凌微TLSR825X是支持BLE5.0的,SDK包含了data length extension数据包扩展功能,数据最大长度251字节,可以提高大数据通信效率。
本章主要讲解下长包的通信交互与配置,深入可参考泰凌微开发手册3.2.8 Data Length Extension章节
数据包结构
- 在蓝牙规范Core4.2之后,将PDU定义到最大到257字节

代码实例
可以参考例程feature_slave_dle.c,将长包的配置代码移植到8258_module工程中
修改缓存
收发改为长包的话需要更大的TX/RX FIFO size,在app.c中修改
// support RF RX/TX MAX data Length: 251byte
#define RX_FIFO_SIZE 288 //rx-24 max:251+24 = 275 16 align-> 288
#define RX_FIFO_NUM 8
#define TX_FIFO_SIZE 264 //tx-12 max:251+12 = 263 4 align-> 264
#define TX_FIFO_NUM 8
#define MTU_SIZE_SETTING 247
#define DLE_TX_SUPPORTED_DATA_LEN MAX_OCTETS_DATA_LEN_EXTENSION //264-12 = 252 > Tx max:251
配置蓝牙
- 在函数 void user_init_normal(void) 中增加MTU修改与注册回调
void user_init_normal(void)
{
//**省略代码
my_att_init(); //GATT initialization
//ATT initialization
blc_att_setRxMtuSize(MTU_SIZE_SETTING);//默认Rx MTU配置
//**省略代码
//注册GAP事件回调
blc_gap_registerHostEventHandler( app_host_event_callback );
blc_gap_setEventMask(GAP_EVT_MASK_ATT_EXCHANGE_MTU);//MTU传输单元回调
//ble event call back

本文详细介绍了如何在泰凌微TLSR825X蓝牙模块上配置和实现Data Length Extension (DLE),包括数据包结构、代码实例、MTU设置、数据通信流程和抓取方法。通过实例演示了如何调整缓存大小、主动请求长度扩展,并在连接事件中管理MTU和数据长度交换。
最低0.47元/天 解锁文章
9247

被折叠的 条评论
为什么被折叠?



