【沁恒蓝牙开发】从机主动更新连接参数

文章目录

1、连接参数组成

常见连接参由以下几个参数组成:

连接参数应该在合理范围内,不然会给主机拒绝连接参数的更新请求, 安卓最小是7.5ms,IO大于等于15ms(具体参考苹果的开发文档)

目前IOS最新的连接参数范围如下:

2、设置从机最大、最小连接间隔

在Peripheral_Init中,可以看到下文,代码的操作码分别代表 GAPROLE_MIN_CONN_INTERVAL(最小连接间隔) 和 GAPROLE_MAX_CONN_INTERVAL(最大连接间隔)。

设置从机最大、最小连接间隔后,在协商的时候供主机决定使用哪一个连接间隔。

连接参数 1代表1.25ms,假如填6,就是 6x1.25=7.5ms

c 复制代码
//设置最小连接间隔
GAPRole_SetParameter(GAPROLE_MIN_CONN_INTERVAL, sizeof(uint16_t), &desired_min_interval);


//设置最大连接间隔
GAPRole_SetParameter(GAPROLE_MAX_CONN_INTERVAL, sizeof(uint16_t), &desired_max_interval);

3、主动更新连接参数

主动更新连接参数的API如下:

c 复制代码
// Minimum connection interval (units of 1.25ms, 6=7.5ms)
#define DEFAULT_DESIRED_MIN_CONN_INTERVAL    6

// Maximum connection interval (units of 1.25ms, 100=125ms)
#define DEFAULT_DESIRED_MAX_CONN_INTERVAL    100

// Slave latency to use parameter update
#define DEFAULT_DESIRED_SLAVE_LATENCY        0

// Supervision timeout value (units of 10ms, 100=1s)
#define DEFAULT_DESIRED_CONN_TIMEOUT         100


GAPRole_PeripheralConnParamUpdateReq(peripheralConnList.connHandle,
                                     DEFAULT_DESIRED_MIN_CONN_INTERVAL,
                                     DEFAULT_DESIRED_MAX_CONN_INTERVAL,
                                     DEFAULT_DESIRED_SLAVE_LATENCY,
                                     DEFAULT_DESIRED_CONN_TIMEOUT,
                                     Peripheral_TaskID);

注意:不可在刚刚连接时立刻调用,立刻协商大概率协商失败 ,因为刚刚连接的时候会有大量数据交互(如主机查从机的服务等),建议同从机例程一样使用TMOS延时调用,如下:

协商回调 与 对应的log

相关推荐
Q_219327645515 小时前
基于51单片机的智能家居防火防盗报警系统设计
嵌入式硬件·51单片机·智能家居
趣知岛1 天前
智能家居与物联网项目实战全指南:从架构设计到落地部署
python·物联网·智能家居
WZGL12301 天前
“近邻+数智”:解码智慧养老的温情答案
大数据·人工智能·科技·生活·智能家居
兆龙电子单片机设计3 天前
【STM32项目开源】STM32单片机智能家居语音控制系统
stm32·单片机·物联网·开源·毕业设计·智能家居
逆小舟4 天前
【RTOS】智能家居-驱动调试&适配层开发
智能家居
WZGL12306 天前
从个体需求到整体守护,科技助力老人安全安心
大数据·人工智能·科技·安全·智能家居
逆小舟6 天前
【RTOS】智能家居-中间层
智能家居