低功耗蓝牙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;

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

测试结果:

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

测试结果:


浙公网安备 33010602011771号