CC26x2R1笔记(11)蓝牙丢包问题(GATT_WriteNoRsp发送返回0x16:blePending)
发布日期:2021-06-29 05:35:50 浏览次数:3 分类:技术文章

本文共 2088 字,大约阅读时间需要 6 分钟。

发送间隔:24ms

发送包长度:20字节

问题:

1:主机通过GATT_WriteNoRsp向从机写入数据,当写速率过快时,就会出现blePending

原因:这是由于出现前面设置的缓存区小和连接间隔太大等参数导致的

解决:
1:将这两个调至成这个,放在ti_ble_config.h,MAX_NUM_PDU和MAX_PDU_SIZE
在这里插入图片描述

定义6个Tx缓冲区,每个缓冲区251字节。用户应用程序应该根据自身堆栈情况进行分配。如果没有足够的堆栈,可以通过减少MAX_NUM_PDU,这样可能导致吞吐量的损失。实际使用中的最坏情况是MAX_NUM_PDU和MAX_PDU_SIZE的乘积。设计人员应该根据设备的可用内存来平衡这些参数。

#define MAX_NUM_PDU 6

#define MAX_PDU_SIZE 251

我们配置L2CAP MAX_PDU_SIZE 为255, ATT_MTU 最大 为251 读写特征值最大长度应该ATT_MTU-3=248;

//source\ti\blestack\profiles\simple_profile\simple_gatt_profile.h SIMPLEPROFILE_CHAR5_LEN Line 85
#define SIMPLEPROFILE_CHAR5_LEN 248

2:简单粗暴将连接间隔调小些

注意,在实际情况下更高的连接间隔有着明显的缺点:由于射频干扰导致的连接事件将大大降低吞吐量。因此用户需要根据所需吞吐量进行权衡。当连接间隔大于100ms后,吞吐量将不会增加。
在这里插入图片描述
将原来的8001.25ms,修改成241.24ms
将最小的连接间隔“修改成7.5ms

![在这里插入图片描述](https://img-blog.csdnimg.cn/20200714193709775.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3poaV9BbGFud3U=,size_16,color_FFFFFF,t_70

bool center_Gatt_Write(uint8 char_type,uint8 *p_data,uint16_t len) {
attWriteReq_t req; // uint8_t charVals[4] = { 0x00, 0x55, 0xAA, 0xFF }; // Should be consistent with // those in scMenuGattWrite uint8 conndle_index=mac_find_connHandle(stu_other.COMMDEV_mac); if(conndle_index==10) return false; req.pValue = GATT_bm_alloc(connList[conndle_index].connHandle, ATT_WRITE_REQ,len,NULL);//sizeof(charVals) , NULL); if ( req.pValue != NULL ) {
if(char_type==1) req.handle = connList[conndle_index].FFX2_Handle;// req.handle = connList[get_currt_conn_num()-1].FFX2_Handle; else req.handle = connList[conndle_index].FFX4_Handle; req.len = len; memcpy(req.pValue,p_data,len); req.sig = 0; req.cmd = 1;//0;// status = GATT_WriteCharValue(connList[conndle_index].connHandle, &req, get_selfEntity());//0; status_gatt=GATT_WriteNoRsp(connList[conndle_index].connHandle, &req); if(status_gatt != SUCCESS) {
GATT_bm_free((gattMsg_t *)&req, ATT_WRITE_REQ); return false; } } return (true); }

可以加入QQ群:687360507

与大伙沟通交流,技术在于分享而进步

转载地址:https://blog.csdn.net/zhi_Alanwu/article/details/107345547 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:CC26x2R1笔记(12) HCITester测试定频的
下一篇:nrf52平台修改各个硬件中断和无线中断等级

发表评论

最新留言

初次前来,多多关照!
[***.217.46.12]2024年04月28日 13时36分40秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章