CC2540主机发送到从机的时间大概要在3秒左右,这个时间比较长,我修改了几个参数:
1、 #define DEFAULT_SCAN_DURATION 1000//4000 扫描完成时间默认是4s,我改为了1s,再小数据容易收发不成功;
2、#define DEFAULT_SVC_DISCOVERY_DELAY 1000 服务事件在完成连接后用定时1s来开启,这个改小了数据也不容易收发成功;
3、得到特征UUID后,读特征值是需要定时一段时间后才能读取,这个我设了200ms,osal_start_timerEx( simpleBLETaskId, LINK_STATE_EVT, 200 );//一定要延时一段时间,否则会读取特征值失败;
从以上连接到发送数据已经花费了1s+1s+0.2s=2.2s了,再加上其中扫描、连接、配对过程中来回不断的事件,感觉蓝牙主从最短接收时间在3s左右吗?主机发送、从机能更快的收到数据吗?
user4198369:
大咖们,帮忙解答下,谢谢
Viki Shi:
扫描连接配对这些过程是第一次需要的,如果成功配对绑定,以后的数据交换会节省不少时间
user4198369:
回复 Viki Shi:
目的是两个CC2540模块进行通讯,不带按键什么的,每次连一次发送一次后就断开了,下次有数据再发送一次;
1、实现不了配对绑定,所以连接之后直接进行数据发送。另外配对绑定也是在扫描和连接之后才进行,所以没有配对绑定速度应该更快?
2、我看库中扫描发送的时间就比较长,在进行连接、底层数据交换等事件,整个通讯时间就比较长。是不是蓝牙通讯“”扫描–连接–发送数据–断开连接“”,这样一个流程一般都要花费3秒左右?
Viki Shi:
回复 user4198369:
1、绑定以后,后续如果还有连接,速度就会快很多。因为绑定再次连接会跳过扫描等步骤,自动重连,节省时间
Viki Shi:
回复 user4198369:
2、这个时间差不多,你可以抓包看下,根据双方之间的数据包判断各个阶段占据的时间。
之前修改 #define DEFAULT_SCAN_DURATION 的思路也是正确的