泰凌微TLSR825X开发十三 蓝牙长包通信

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

泰凌微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
	
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值