写在前面
蓝牙的连接参数主要是指:
更新模式(paramUpdateEnable)
最小连接间隔(minConnInterval)
最大连接间隔(maxConnInterval)
潜伏个数(slaveLatency)
连接超时时间(timeoutMultiplier)
例程:examples\rtos\CC2640R2_LAUNCHXL\blestack\simple_peripheral
相关说明1、更新模式(paramUpdateEnable)说明:
设置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)) { //执行更新操作 }
|