低功耗蓝牙IC_CH57x-CH58x BLE连接事件回调使用示例

BLE 连接事件回调(Connection Event Callback) 是 BLE 最底层、最精准的射频同步事件,专门用于精准定时、同步采样、低功耗同步任务。

连接事件回调 = 每次 BLE 主机与从机 “握手通信” 的那一刻触发的回调,它有以下几个特性:

①只要连接建立,就会周期性触发

②触发周期 = 当前连接间隔 connInterval * (latency+1)

③这是 BLE 硬件层最精准的同步时钟点

④协议栈处理完本次射频通信后立刻调用

 

__HIGH_CODE
void get_delta_time()
{
   static uint32_t last_rtc = 0 ,current_rtc = 0;
   static uint32_t delta_rtc = 0;
   last_rtc = current_rtc;
   current_rtc=RTC_GetCycle32k();
   delta_rtc = (current_rtc -  last_rtc)/32;
   PRINT("TIME - %d ms\n" , delta_rtc);
}

__HIGH_CODE
void ConnectEventCB(uint32_t timeUs)//连接事件回调函数定义
{
    static uint16_t count=0;
    count++;
    get_delta_time();//获取两次进入的间隔,单位ms
    PRINT("%x \t %d us\n",count,timeUs);
}

 

LL_ConnectEventRegister( ConnectEventCB );//注册连接事件回调

 

注册回调任务必须放在BLE库初始化之后,一般推荐直接放在业务初始化的函数中,比如HidEmu_Init或者Peripheral_Init;

image

 

 

 情况1:连接间隔设置为8 , latency设置为0

image

 

 测试结果:

image

 



 

情况2:连接间隔设置为8 , latency设置为30

image

 

测试结果:

image

 

posted @ 2026-05-13 16:38  oTvTo  阅读(42)  评论(0)    收藏  举报