电源管理回调函数在低功耗出来后会一直调用co_power_register_sleep_event注册的回调函数吗

相醉为友 · 17次点击 · 1周前
static void power_sleep_event_handler(co_power_sleep_state_t sleep_state, co_power_status_t power_status)
{
    switch (sleep_state)
    {
    case POWER_SLEEP_ENTRY:  // 系统即将进入睡眠
        {
            num_i ++;
#if !CONFIG_32K_IN_DEEP_SLEEP_ENABLE
        // HREGW0(&HS_HIB->CONFIG_1, HIB_CONFIG_PD_RC32K_LDOSTARTUP_MASK);  // 深睡眠中关闭32K晶振的特殊寄存器设置
#endif
        if (power_status == POWER_DEEP_SLEEP)
        {
        //    LOG_WRN("######################\n");  // 记录深睡眠事件
        }
        break;
        }

    case POWER_SLEEP_LEAVE_TOP_HALF:  // 唤醒上半部(关键硬件恢复)
        {
            num2 ++;
#if !CONFIG_32K_IN_DEEP_SLEEP_ENABLE
        // HREGW1(&HS_HIB->CONFIG_1, HIB_CONFIG_PD_RC32K_LDOSTARTUP_MASK);  // 恢复32K晶振的特殊寄存器设置
#endif
#if CONFIG_RF_TXRX_PIN_ENABLE
        rf_txrx_pin_enable(true, PIN_RF_TX, PIN_RF_RX, 0);  // 启用RF收发引脚
#endif
        //硬件重新初始化
        hw_reinit();
        //LOG_WRN("@@@@@@@@@@@@@@@@@@@@@@@@@@@\n");  // 记录深睡眠事件
        break;
        }

    case POWER_SLEEP_LEAVE_BOTTOM_HALF:  // 唤醒下半部(次要恢复)
        // LOG_WRN("!\n");  // 记录深睡眠事件
        num3 ++;
        break;
    }
}

image.png

被收藏 0  ∙  0 赞  
加入收藏
点赞
0 回复  
善言善语 (您需要 登录 后才能回复 没有账号 ?)

请先登录网站