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

CC2652RSIP: 用simple_peripheral任务通过notify给APP发送数据,最多只能到20个字节

Part Number:CC2652RSIP

sdk版本号;simplelink_cc13xx_cc26xx_sdk_7_40_00_77

IDE版本号:CCS12.5.0

编译器版本号:TI Clang v3.2.0LTS

MAX_PDU_SIZE设置为251

如题,我根据project_zero工程的data_service服务,修改simple_peripheral的Characteristic 4,可以通过notify方式给APP发送一组数据。通过调试发现,simpleProfile_ReadAttrCB的maxlen参数就是20个字节,通过跟踪发现simpleProfile_ReadAttrCB的调用路径是:SimpleProfile_SetParameter → GATTServApp_ProcessCharCfg(调试时,只有其声明而没有定义,因此进入不了此函数,在整个协议栈中查找,发现在gattservapp_util.c文件中有其定义,后面的调用路径以此文件为准(能否告知是否正确?)) → gattServApp_SendNotiInd → GATT_bm_alloc( connHandle, ATT_HANDLE_VALUE_NOTI,GATT_MAX_MTU, &len ) → simpleProfile_ReadAttrCB。

由上可知调用GATT_bm_alloc时,申请的内存为GATT_MAX_MTU,而GATT_MAX_MTU是0xffff,len 返回的实际申请的大小正是20字节。

我在调试官方的simple_peripheral工程中,在simpleProfile_ReadAttrCB中打断点,发现其maxlen参数也是20字节。因此应该不是我修改代码的问题

wei wang:

已解决,发送端默认最多传输20字节,可通过调用GATT_ExchangeMTU()修改默认的MTU

,

Cherry VIP:

谢谢你的提问,我的问题解决了。

赞(0)
未经允许不得转载:TI中文支持网 » CC2652RSIP: 用simple_peripheral任务通过notify给APP发送数据,最多只能到20个字节
分享到: 更多 (0)