CC2540的协议栈1.4.2.2是不是有bug
我用这个函数GATT_WriteNoRsp发送write command的命令给从机,代码如下
attWriteReq_t req; bStatus_t res = FAILURE; uint8 sampling_enable[]={0x20,0x03,0x01}; req.handle = 0x18;// req.len = sizeof(sampling_enable); req.pValue = &sampling_enable[0]; req.cmd = 1; req.sig = 0; res = GATT_WriteNoRsp(con_handle,&req);
为什么抓包工具抓到的是Read Response??
求解?
handle不能写死,需要在代码中以获取的方式获得。
看我个性签名的博客地址,《CC2541之发现服务与特征值》、《CC2541之主机端获取从机notify数据》
大哥你的也是写死的,我这里写死的值和我空中抓包的值是一样的,怎么会有影响呢?况且我有读handle的这个过程
晕,哥们,我给你分享了两篇啊。
第一篇是告诉你怎么获取特征值,第二篇是教你怎么发送数据。
第二篇之所以写死,是因为我在简便写demo。
让你结合两篇一起写代码,明白吗?
你好
这个协议栈没有问题
下图是新老协议栈attWriteReq_t结构体的对比
可以明显的看到旧的协议栈用的是数组,新的协议栈用的是指针
这就说明你自己要在堆上malloc一块儿空间来存放你的数据
你这里直接使用会出现警告:你所定义的 变量没有初始化就使用了
这里给出我使用notify的例子,希望可以帮到你
注意:
malloc之后一定要free
否则会出现内存泄漏问题。
非常感谢,确实是这个问题造成的,
还有两个问题能不能帮我分析一下,
1:我的程序是由两个handle需要notify enable,第一个使能之后会受到一个indication的应答数据,但是第二个没有是怎么回事呢?
2:还有我需要给两一个handle发一个 write no response 的三个字节的数据,应该用哪个函数,怎么写,我现在用的协议栈中的那个write no response的函数
发了之后没有任何反应,正常情况是应该有传感器数据上来的.而且抓包工具也抓不到我发的这个命令.
1.建议两个对比一下,可能是你的handle的问题。
2.建议用Btool
还需要大家一起研究