蓝牙广播时间设置

1CONN_INTERVAL (连接间隔)

       就是两个连接事件之间的时间间隔,连接间隔以1.25为单位,连接间隔的值为6(7.5ms)~3200(4s).不同的应用可能要求不同的时间间隔。长的时间间隔的优势是显著地节省功耗,因为设备可以在连接事件之间有较长时间的休眠,坏处是当设备有应用数据需要发送时,必须要等到下一个连接事件;短的时间间隔优势是两设备连接频发,可以更快地收发数据,不利之处是设备因连接事件的到来而被频繁的唤醒,会有较多功耗。

数据传递时:通讯数据包是连续传递的,主机会选择min值来进行通讯。
 无数据传递时:通讯是空闲状态,主机会选择max值来定期询问从机状态,以保持连接不中断。(在空闲时,由于使用max的值作为通讯周期,会影响到程序的下一个命令的发送时间)

2

SLAVE_LATENCY: (从机所存)

Slaver设备没有数据要发时,跳过一定数目的ConnectionEvent的值,Rang:0-499.  

跳过的interval个数,设置为0则每次interval都连接。数字约小通信速度越快,但是功耗越高

注意:这个参数更重要的应用 :比如在距离远或者干扰大的时候 无数据通信的时候。把这个值设大可以减少掉线概率。

比如防丢器:放在口袋里面假如这个参数设置为0 表示规定时间内必须响应从机,不然就以为是蓝牙断开了。假如设置为5。假如信号不好的时候,即使中间丢了4个,只接受了1个就表示连接了。因为他会跳过其中4个 ,保证了不掉线的概率

3.

TIMEOUT:(连接超时)

超时时间,就是两个设备在连接的这段时间没有发生通讯而导致连接自动断开的值。Range(10ms-----32s)

连接超时时间,用在信号不太好的情况下, 给对方一点时间。超过这个时间通信就建立失败

   gap_conn_params.min_conn_interval = MIN_CONN_INTERVAL; // 0.5sec 连接间隔时间,指定一个最大值和最小值,以供Master 建立连接

   gap_conn_params.max_conn_interval = MAX_CONN_INTERVAL;// 1sec ,连接间隔时间,1.25毫秒的倍数,7.5ms~4s之间

   gap_conn_params.slave_latency    = SLAVE_LATENCY;// 从机潜伏,允许设备跳过的最大连接次数,为0,能快速收到Master发送过来的数据

   gap_conn_params.conn_sup_timeout = CONN_SUP_TIMEOUT;// 监督超时时间,超时没有收到数据则认为连接断开

设置一直广播模式   

//advdata.flags              = BLE_GAP_ADV_FLAGS_LE_ONLY_LIMITED_DISC_MODE;

//Bluetooth no longer broadcasts after timeout.

——>
 advdata.flags              = BLE_GAP_ADV_FLAGS_LE_ONLY_GENERAL_DISC_MODE;

//Bluetooth broadcast after timeout 

设置超时时间

#define CONN_SUP_TIMEOUT                MSEC_TO_UNITS(4000, UNIT_10_MS)             /**< Connection supervisory timeout (4 seconds), Supervision Timeout uses 10 ms units. */4000——>0

猜你喜欢

转载自blog.csdn.net/qq_33712422/article/details/88972966