微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI蓝牙设计交流 > CC2540 central与peripheral之间的通信

CC2540 central与peripheral之间的通信

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

您好,我们正在开发一款支持BLE4.0的设备,思路是central发送characteristic给peripheral,peripheral根据characteristic的信息决定回什么样的数据给central,

peripheral向central发送数据采用notification。开发过程中有以下几个疑问,麻烦Ti员工帮忙解答以下:

(1)、主机向从机发送数据的疑问:

通信过程是不是首先peripheral会规划好自己的attribute table,central通过write function修改characteristic value,peripheral重新读取characteristic value即可?

central最大可以向peripheral发送多少数据?如果数据比较多是不是需要分批发送?最好选用哪一个函数实现?

(2)、peripheral回复central的疑问:

如果采用notification,数据包的大小最大是多少?是不是23 to 517?如果数组比较多是不是也需要分批发送?还是只需要把数组的指针给GATT_Notification (),CC2540会自动分批发送?

项目比较紧急,希望您能及时回复,谢谢帮忙。

hi

主向从差不多使用服务中的char  n这个自己定),你说的差不多。

主向从 可以使用GATT_WriteCharValue(虽然他说这个可以自动分包,但是也没见过这种例子,所以。。。)和GATT_writeLongCharvalue这两个函数,长度18 和20,数据太多的话,就得分包,两个都差不多,函数发送是有时间间隔的,要想快速发送,那就得更改从机的连接间隔,功耗增加。

从机使用那个notification的话,也是20,没有自动分批发送的,分包。

2540不适合大数据的传输,它最大好像也就几k,而且这时候功耗应该要高几倍到十几倍吧。

hi,river:

  连接间隔要怎么改啊?为什么有两个,min和max?

hi 

     你调小就好了,这个好像是有个公式的,我记得也不是很清楚了,之后再告诉你吧,我记得好像是调下max,调小就好了

 

还有,之前问过你那个GATT_writeLongCharValue的问题,我那个offset怎么也实现不了,是怎么回事,数据就是发的不对,一次可以发送50个了,但数据只显示第一次发送的18个,后面的就是那18个重复。

数据只显示第一次发送的18个,后面的就是那18个重复? 这个是什么意思?

hi 

   效果是这样的,如果我如果发生这种数据吧(hex发送):

01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 

19 20 21 22 23 24 25 26 27 28  29 30 31 32 33 34  35 36

37 38 39 40 41 42 43 44 45 46 47 48 49 50

然后我收到的数据时(hex):

01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 

01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 

01 02 03 04 05 06 07 08 09 10 11 12 13 14 

我想知道你在从机中是怎么处理这个offset的。

634754484

贴一下你的代码看看啊

你好,打扰一下,请问该问题解决没?我也碰到了这样的问题,GATT_WriteLongCharValue每次发送数据时,目标机只能收到前面的18个字节的数据

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

网站地图

Top