TI中文支持网
TI专业的中文技术问题搜集分享网站

simplelink_cc2640r2_sdk_3_20_00_21 的 “HCI_LE_WriteSuggestedDefaultDataLenCmd()” 函数问题。

SDK:simplelink_cc2640r2_sdk_3_20_00_21 

处理器:CC2640R2F

问题描述:

simplelink_cc2640r2_sdk_3_20_00_21 的 BLE5 simple_peripheral 例程中调用了一下代码:

  // Set default values for Data Length Extension// Extended Data Length Feature is already enabled by default{// Set initial values to maximum, RX is set to max. by default(251 octets, 2120us)// Some brand smartphone is essentially needing 251/2120, so we set them here.#define APP_SUGGESTED_PDU_SIZE 251 //default is 27 octets(TX)#define APP_SUGGESTED_TX_TIME 2120 //default is 328us(TX)// This API is documented in hci.h// See the LE Data Length Extension section in the BLE5-Stack User's Guide for information on using this command:// software-dl.ti.com/.../HCI_LE_WriteSuggestedDefaultDataLenCmd(APP_SUGGESTED_PDU_SIZE, APP_SUGGESTED_TX_TIME);}

但是我抓包发现蓝牙模块的 MTU 还是没有变成 251,这个不是改变 MTU 大小的 API 吗?

Alvin Chen:

修改MAX_PDU_SIZE为255

Alvin Chen:

 而且MTU EXCHANGE 与你对方设备也有关。

Jesse Huang:

回复 Alvin Chen:

添加宏定义“MAX_PDU_SIZE=255”是可以改变 MTU 的,而且抓包可以看到是 251。

问题是例程中的 “HCI_LE_WriteSuggestedDefaultDataLenCmd(APP_SUGGESTED_PDU_SIZE, APP_SUGGESTED_TX_TIME);” 有什么用?

Jesse Huang:

回复 Alvin Chen:

// Maximum size in bytes of the BLE HCI PDU. Valid range: 27 to 255
// The maximum ATT_MTU is MAX_PDU_SIZE - 4.
#ifndef MAX_PDU_SIZE
#if defined(BLE_V42_FEATURES) && (BLE_V42_FEATURES & SECURE_CONNS_CFG)#define MAX_PDU_SIZE69
#else#define MAX_PDU_SIZE27
#endif //(BLE_V42_FEATURES & SECURE_CONNS_CFG)
#endif

MAX_PDU_SIZE 的范围不是 27 到 255 吗?不能设置为 255 吗?

Alvin Chen:

回复 Jesse Huang:

PDU和MTU不是一个概念, PDU是255 , 上面第一条回复写错了。 去掉L2CAP 4个包头 生效的MTU,你自己去看抓包MTU exchange request。

Jesse Huang:

回复 Alvin Chen:

哦,这个我知道。

赞(0)
未经允许不得转载:TI中文支持网 » simplelink_cc2640r2_sdk_3_20_00_21 的 “HCI_LE_WriteSuggestedDefaultDataLenCmd()” 函数问题。
分享到: 更多 (0)