[蓝牙] CC2640R2F BLE 开发之如何更新连接参数

[复制链接]
1042|20
 楼主| 八层楼 发表于 2019-12-31 15:06 | 显示全部楼层 |阅读模式
写在前面
蓝牙的连接参数主要是指:

更新模式(paramUpdateEnable)
最小连接间隔(minConnInterval)
最大连接间隔(maxConnInterval)
潜伏个数(slaveLatency)
连接超时时间(timeoutMultiplier)
例程:examples\rtos\CC2640R2_LAUNCHXL\blestack\simple_peripheral
相关说明1、更新模式(paramUpdateEnable)

说明:

996345e0af35d02b60.png


设置API:

GAPRole_SetParameter(GAPROLE_PARAM_UPDATE_ENABLE, sizeof(uint8_t), &value);

获取当前参数API:GAPRole_GetParameter(GAPROLE_PARAM_UPDATE_ENABLE,&value);


2、最小连接间隔(minConnInterval)

设置API:

GAPRole_SetParameter(GAPROLE_MIN_CONN_INTERVAL, sizeof(uint16_t), &value);

获取当前参数API:GAPRole_GetParameter(GAPROLE_PARAM_UPDATE_ENABLE,&value);


3、最大连接间隔(maxConnInterval)

设置API:

GAPRole_SetParameter(GAPROLE_MAX_CONN_INTERVAL, sizeof(uint16_t), &value);

获取当前参数API:GAPRole_GetParameter(GAPROLE_MAX_CONN_INTERVAL,&value);


4、潜伏个数(slaveLatency)

设置API:

GAPRole_SetParameter(GAPROLE_SLAVE_LATENCY, sizeof(uint16_t), &value);

获取当前参数API:GAPRole_GetParameter(GAPROLE_SLAVE_LATENCY,&value);


5、连接超时时间(timeoutMultiplier)

设置API:

GAPRole_SetParameter(GAPROLE_TIMEOUT_MULTIPLIER, sizeof(uint16_t), &value);

获取当前参数API:GAPRole_GetParameter(GAPROLE_TIMEOUT_MULTIPLIER,&value);


执行更新连接参数

以上API设置只是加载相关数值,并不会发起更新,调用以下API主从机就会发起协商更新连接参数(如果参数符合要求)

更新参数要求:


每次更新必须有且一个参数与当前的参数不一致,如下代码所示,最好每次的连接超时时间要改变一下,不然会返回0x18,

timeoutMultiplier > (1+slaveLatency) * maxConnInterval * 2,timeoutMultiplier 应为100 ms的倍数,范围为100 ms至32.0 s,最好把余量放大点。


int8_t enableUpdateRequest = TRUE;

GAPRole_SetParameter( GAPROLE_PARAM_UPDATE_REQ,sizeof(uint8_t), &enableUpdateRequest)



更新参数执行限制条件


  if ((gapRole_ConnInterval < pConnParams->minConnInterval)   ||

       (gapRole_ConnInterval > pConnParams->maxConnInterval)   ||

       (gapRole_ConnSlaveLatency != pConnParams->slaveLatency) ||

       (gapRole_ConnTimeout  != pConnParams->timeoutMultiplier))

  {

  //执行更新操作

  }



5595e0af30dd8eed.png
kkzz 发表于 2020-1-2 13:00 | 显示全部楼层
ble开发 怎么在后台   
hudi008 发表于 2020-1-2 13:01 | 显示全部楼层
是否支持BLE开发?   
lzmm 发表于 2020-1-2 13:01 | 显示全部楼层
BLE开发是用CSR的1010模块好还是TI的2541  
minzisc 发表于 2020-1-2 13:01 | 显示全部楼层
蓝牙开发 ble 难吗   
selongli 发表于 2020-1-2 13:01 | 显示全部楼层
蓝牙ble方案哪个公司设计的好  
fentianyou 发表于 2020-1-2 13:01 | 显示全部楼层
CC2541与CC2640有什么实际区别?
xiaoyaodz 发表于 2020-1-2 13:02 | 显示全部楼层
CC2640 端口捕获怎么设置  
febgxu 发表于 2020-1-2 13:02 | 显示全部楼层
有协议栈的话应该选哪个协议栈  
sdlls 发表于 2020-1-2 13:02 | 显示全部楼层
如何CC2640修改广播的名字  
pixhw 发表于 2020-1-2 13:02 | 显示全部楼层
CC2640怎么开启串口bootloader  
febgxu 发表于 2020-1-2 13:02 | 显示全部楼层
怎么设置cc2640的spi通信  
kkzz 发表于 2020-1-2 13:02 | 显示全部楼层
进入ble范围自动提醒
xiaoyaodz 发表于 2020-1-2 13:02 | 显示全部楼层
在IAR中如何设置相对路径CC2640  
hudi008 发表于 2020-1-2 13:02 | 显示全部楼层
安卓蓝牙遥控器属于ble开发吗
fentianyou 发表于 2020-1-2 13:02 | 显示全部楼层
手机可以连接CC2640吗  
lzmm 发表于 2020-1-2 13:02 | 显示全部楼层
iBeacon和BLE的区别?   
selongli 发表于 2020-1-2 13:02 | 显示全部楼层
BLE开发,如何持续读取设备端的数据?  
minzisc 发表于 2020-1-2 13:02 | 显示全部楼层
ble开发板 怎样连接电脑  
pixhw 发表于 2020-1-2 13:02 | 显示全部楼层
如何测试CC2640的BLE射频指标  
您需要登录后才可以回帖 登录 | 注册

本版积分规则

139

主题

4424

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部