• 正文
  • 相关推荐
申请入驻 产业图谱

BLE主机实战:如何确认主机更新连接参数是否完成

08/31 08:44
171
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

一、前言

上一篇的内容分析了主机更新连接参数指令的空中RF数据,那么我怎么知道主机发出的更新连接是否完成了呢?本篇的内容就是对这个问题的解答。

二、阅读说明

1、泰凌微芯片开发学习者。2、芯科芯片开发学习者。3、蓝牙 spec学习者。

三、正文

1、使用的demo

泰凌芯片:ble_master_kma_dongle

芯科芯片:Bluetooth - SoC Blinky

2、增加连接更新完成事件标志

如上图所示,在app.c文件中的user_init()函数中,增加一个连接更新完成完成的事件标志:

HCI_LE_EVT_MASK_CONNECTION_UPDATE_COMPLETE

3、编写回调函数

{    hci_le_connectionUpdateCompleteEvt_t *pCon = (hci_le_connectionUpdateCompleteEvt_t *)p;    if(pCon->status == 0)    {        printf("nconnect para completen");    }    else    {        printf("nconnect para failn");    }        #if (BLE_MASTER_OTA_ENABLE)        hci_le_connectionUpdateCompleteEvt_t *pCon = (hci_le_connectionUpdateCompleteEvt_t *)p;        extern void host_ota_update_conn_complete(u16, u16, u16);        host_ota_update_conn_complete( pCon->connInterval, pCon->connLatency, pCon->supervisionTimeout );    #endif    return 0;}

如上图所示,在blm_host.c文件中的blm_le_conn_update_event_proc()函数中,增加打印代码,当更新成功或者失败的时候都会打印log出来。

4、打印结果

如上图所示,打印出了connect para complete,说明更新参数成功了。

四、结尾

本篇解释了连接参数更新完成的回调函数。

相关推荐

专注BLE实战开发,也分享物联网、嵌入式等相关技术

微信公众号