Quantcast
Channel: 蓝牙论坛 - 最近的话题
Viewing all articles
Browse latest Browse all 7519

cc2541 协议栈1.4.1,主机端接收不了通知问题

$
0
0

hi:各位大侠,Ti工程师们

最近遇到一个主机端接收不到从机的通知问题,从机是使用的1.4.0协议,每800ms从特征值4发送16个字节的通知(从机端应该没有问题)

主机端我用1.4.0协议栈里面的center工程是可以收到的,具体做法:在发现到服务的回调函数中,定时1s后开任务打开通知的开关。打开通知开关的具体方法:是向句柄为0x2f 中写0x0001,具体代码如下:

//开启notify的CCC
attWriteReq_t   req;
req.handle = 0x2f;
//req.handle = GUA_CHAR4_CCC_Hdl; //char4的CCC的特征值句柄,这里写死0x2F,可通过btool获取到
req.len = 2;
req.pValue[0] = LO_UINT16(GATT_CLIENT_CFG_NOTIFY); //0x0001为开notify
req.pValue[1] = HI_UINT16(GATT_CLIENT_CFG_NOTIFY);
req.sig = 0;
req.cmd = 0;
GATT_WriteCharValue( 0, &req, simpleBLESwitch_TaskID );
OLED_ShowString(0,6,"open-noti");

以上的在 1.4.0里的center工程中是可以实现的,主机端可以接受到通知,sniffer 抓包结果是这样的:

但是在1.4.1的center工程中,同样的代码,却接收不到通知,抓包的结果是:上图中标蓝箭头的那条写请求没有,
是我没有写成功吗?
GATT_WriteCharValue( 0, &req, simpleBLESwitch_TaskID );是这个方法没有写成功吗?但是我查过返回值是 = success 的
另外要向 句柄为0x2f 这个开关里面写值 有什么前提吗?
我在sniff看到的 F4特征值的句柄确实是 0x2e,查资料上也是说CCC开关 的句柄只要+1就可以了, 
哪里出错了,求教大侠???
另外我从机用的是128bit 的uuid,这个会有影响吗?
这个图是1.4.1接不到通知的抓包
  

Viewing all articles
Browse latest Browse all 7519

Trending Articles