WCH沁恒单片机
直播中

申根换

7年用户 1596经验值
私信 关注
[问答]

CH579为什么无法发送长包?

用CH579分别做蓝牙的主从机,不管修改config里的MTU最大长度和特征值可以接受的数据长度都无效,写函数也用了writelongchar,都不能超过17个字节的发送包

调试发现原因如果( pMsg-
>method == ATT_READ_BY_pairs_RSP &&  
         pMsg->g.readByTypeRsp.numPairs > 0)
    {
      centralCharHdl = BUILD_UINT16(pMsg->msg.readByTypeRsp.DataList[0],
                                       pMsg->msg.readByTypeRsp.pDataList[1] );
      
      // 开始读或写
      tmos_start_task(centralTask​​Id, START_READ_OR_WRITE_EVT, DEFAULT_READ_OR_WRITE_DELAY);
      
      // 显示特征 1 句柄
      PRINT("找到特征 1 句柄 : %x n",centralCharHdl);      
    }

pMsg->


回帖(2)

解丽娟

2022-8-3 10:06:05
使用我们的例程主机应该可以发送19个修改字节,从机可以发送20个,如果想要改变,那么可以在主机端调用GATT_ExchangeMTU,config.h中也相应字节为251,此时mtu为247。

举报

刘飞

2022-8-3 10:06:10
GATT_ExchangeMTU也调用了,这个函数在centralHciMTUChangeCB这个里面
直接这样写的 centralHciMTUChangeCB(LINK_CONNECTED,244,244);,然而并没有用
在连接之后调用了,直接连接都读不到了,在读取到服务句柄后服务句柄仍然是读取不到特征值柄的

举报

更多回帖

发帖
×
20
完善资料,
赚取积分