微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI蓝牙设计交流 > CC2541传输丢包问题

CC2541传输丢包问题

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

我使用CC2541芯片遇到了两个问题。

1.我使用设置characteristic启动notify的方式来获取数据,在40ms发一次的情况下,notify发送的数据包会丢失。

2.在使用上面的方式发送数据时,一个包包含的数据只能支持29字节的,而代码里面的注释上说明的是

typedef struct attAttribute_t

{

    gattAttrType_t type;

    uint8 permissions;

    uint16 handle;

    uint8* const pValue;//!< Attribute value - encoding of the octet array is defined in

                                   //!< the Application profile.The maximum length of an attaribute

                                   //!< value shall be 512 octets

} gattAttribute_t;

li,

1. 接收方是个啥?能用packet sniffer 抓包看看空中包的情况吗?

2. 正确来说,notification 允许带的数据包最长只有20字节。这是协议栈规定。这个定义只是广泛的定义,针对于所有的attribute. 读写数据的时候,是可以有更长数据的,但是到了底层,还是分包发送。

接收使用的套间里面的USB 接收器,用BTool查看的数据。

我刚才看到了之前的帖子,里面有说到一个Blob 读,我使用TI的android Demo是不是能够实现Blob读喃。

谢谢

接收是通过usb dongle使用Btool接收包。

在之前的帖子里面我看到了一个Blob 写的一个说法,我想问在Ti 提供的androidDemo里面怎么实现blob读去我再cc2541从设备里面设置的长度超过20字节的特征值。

li,

由于google 已经把BlueDroid协议栈给封装了,并没有完全把BlueDroid 的所有接口都提供出来,虽然你可以找到BlueDroid 源码,自己编译到Android 内核里面去,因为BlueDroid是开源的。

所以,Google提供的API,看上去只有write和read,并没有说明是何种方式读取。

Yan,

我再追问一个问题哈,如果一个特征值需要以blob的方式读取,我在cc2541单片机程序中定义这个特征值是是否需要一些特殊的设定。

li,

不需要特殊设定。

blob读只是读的一种方式,和特征值本质没有关系。

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

网站地图

Top