微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI蓝牙设计交流 > CC2541发送超长字节内容的处理方式?(500~1000字节)

CC2541发送超长字节内容的处理方式?(500~1000字节)

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

GATT_Notification 我测试了可以一次发送20个字节,超过20个字节就没有反应,手机端接受不到消息

GATT_WriteNoRsp 也可以一次发送20个字节,这两个函数有什么区别呢?

另外在http://e2e.ti.com/support/low_power_rf/f/538/t/111465.aspx#394585 提到,快速调用GATT_WriteNoRsp  发送消息,循环几次后就会出现

MSG_BUFFER_NOT_AVAIL ,那么合理的间隔应该是多少呢?

烦请建议一下一秒钟内发送500~1000个字节的流程(包括接受)和注意事项,谢谢。

Hi yu,

如果是peripheral, 端,那么只能以GATT_Notification 每次发送20个字节。

GATT_WriteNoRsp 是central端的接口, 在central你可以尝试 GATT_WriteLongCharValue()去写超过20个字节每包。

就是说peripheral, 端  要发送500个字节,就只能拆分为20个字节,多次发送,所以对收到内容的完整性校验 要自己处理 对吗?

Hi Yan,

GATT_WriteCharValue() 能否连续调用?是否有次数限制?

我在central端连续发送512字节数据后,速度突然变慢?

(我是每包20字节,连续调用GATT_WriteCharValue() 直至发送完1K字节)

这个bStatus_t GATT_WriteCharValue( uint16 connHandle, attWriteReq_t *pReq, uint8 taskId );   taskId 是那个 task的 id ?

San,

可以连续调用。

taskID可以是你的应用层的taskID,比如说SimpleBLECentral 工程,那么就是 simpleBLETaskId。

http://processors.wiki.ti.com/index.php/CC2540_Data_Throughput 这个是TI自己测试的数据吞吐量程序,最高可到5.9KB/s ,你可以参考一下,提供了测试的源代码。利用这个程序进行修改,研发进程要快的多。notification 的字节数20 是蓝牙技术联盟规定的BLE 协议,是标准,根本改不了。这不是TI定的

HI YAN; 问一个问题: 我用GATT_WriteCharValue往peripheral发送数据, 我看上面很多人说可以一次发送20个字节,但是我测试的结果是: 如果发送20个字节每次,peripheral端会返回错误, 19个字节就ok;    

下面是抓包结果:

    

请问是什么原因导致的呢

谢谢

找到原因了

你好,可是Notify和Write的最大大小不都是20B吗?

Charisticter定义为大小20B,怎么去写GATT_WriteLongCharValue()去写超过20个字节每包

难道Charisticter可以定位为>20B?

我可以定义Charisticter大小为500,然后直接用GATT_WriteLongCharValue()一次性写500B吗?

你好,可是Notify和Write的最大大小不都是20B吗?

Charisticter定义为大小20B,怎么去写GATT_WriteLongCharValue()去写超过20个字节每包

难道Charisticter可以定位为>20B?

我可以定义Charisticter大小为500,然后直接用GATT_WriteLongCharValue()一次性写500B吗?

上面说的有问题 最大是251字节  notification可以是251字节

参考蓝牙协议规范vol6 partB

可是CC2541似乎是最大20B

cc2541   蓝牙协议栈 理论上251b

你好 lenli LENLI,

   非常感谢回复!

   请问251B是在哪里看到的,能否发给我看一下。

   不胜感激。

Frank

自己在工程中搜寻MTU的东西就找到了

2541不支持Core 4.2,哪里来的251一说。。。

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

网站地图

Top