请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:CC2540 大家好、
最近、我将代码从 BLE 1.3.2升级到 BLE 1.4.0、然后是 BLE1.4.1。 但是、在我从 BLE 1.4.0升级到 BLE 1.4.1后、我发现中央只能接收一个封装、然后卡在并断开连接、但外设会持续向 中央发送20字节数据包、并从中央的 simpleBLECentralPRocessGATTMSG 读取数据包。 我已经在 BLE 1.3.2和 BLE 1.4.0中进行了测试、没有问题。
我已,软件包监听器来读取软件包在这里我确实发现只有一个软件包被发送、然后屏幕被冻结了一段时间、然后断开连接并再次开始扫描。
我还尝试使用浅蓝色连接外设、在这里我可以持续接收软件包。
请帮助您了解下一步的行动。
非常感谢。
我编写的代码位于 simpleBLEcentralProcessGATTMsg 中 : (根据 BLE1.4.1中的 simplecentral 文件,我在 simpleBLEcentralProcessGATT_FREE (&pMsg->msg,pMsg->method)”末尾添加了"GATT_BM_BM_FREE(&pMsg->msg,pMsg->METHOD )")
if (pMsg->method =ATT_Handle_value_Noti ||
pMsg->method == ATT_Handle_value_indD )
{
如果(pMsg->msg.handleValueNoti.handle ==0x004C)// 0x004D 是通知的句柄,则0x004C 是特征的句柄
{
attHandleValueNoti_t noti14;
noti14.handle = pMsg->msg.handleValueNotti.handle;
noti14.len = pMsg->msg.handleValueNotti.len;
oSAL_memcpy (noti14.pValue、&pMsg->msg.handleValueNotti.pValue、noti14.len);
OSAL_memcpy (&char14buffer、¬i14.pValue、noti14.len);
USBio_WriteTransport (char14缓冲区、20);
USBPrintString ("Receive14:");
}