微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI蓝牙设计交流 > CC2540的协议栈1.4.2.2是不是有bug

CC2540的协议栈1.4.2.2是不是有bug

时间:10-02 整理:3721RD 点击:

我用这个函数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

还需要大家一起研究

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top