void HAL_WWDG_IRQHandler(WWDG_HandleTypeDef *hwwdg) { /* Check if Early Wakeup Interrupt is enable */ if (__HAL_WWDG_GET_IT_SOURCE(hwwdg, WWDG_IT_EWI) != RESET) { /* Check if WWDG Early Wakeup Interrupt occurred */ if (__HAL_WWDG_GET_FLAG(hwwdg, WWDG_FLAG_EWIF) != RESET) { /* Clear the WWDG Early Wakeup flag */ __HAL_WWDG_CLEAR_FLAG(hwwdg, WWDG_FLAG_EWIF); #if (USE_HAL_WWDG_REGISTER_CALLBACKS == 1) /* Early Wakeup registered callback */ hwwdg->EwiCallback(hwwdg); #else /* Early Wakeup callback */ HAL_WWDG_EarlyWakeupCallback(hwwdg); #endif /* USE_HAL_WWDG_REGISTER_CALLBACKS */ } } }
这段代码是如何执行HAL_WWDG_EarlyWakeupCallback(hwwdg); 的?
在STM32的HAL库中,WWDG
(窗口看门狗)外设的中断处理函数HAL_WWDG_IRQHandler
负责处理窗口看门狗的中断事件。特别是,它处理的是早期唤醒中断(Early Wakeup Interrupt, EWI