STM32笔记--低功耗与RTC唤醒
硬件平台: STM32L051
void system_stop(void)
{
__HAL_RCC_AHB_FORCE_RESET();
__HAL_RCC_APB1_FORCE_RESET();
__HAL_RCC_APB2_FORCE_RESET();
__HAL_RCC_PWR_CLK_ENABLE();
HAL_PWR_EnableBkUpAccess();
__HAL_PWR_CLEAR_FLAG(PWR_FLAG_SB);
__HAL_RTC_WRITEPROTECTION_DISABLE(&hrtc);
__HAL_RTC_WAKEUPTIMER_DISABLE_IT(&hrtc,RTC_IT_WUT);
__HAL_RTC_TIMESTAMP_DISABLE_IT(&hrtc,RTC_IT_TS);
__HAL_RTC_ALARM_CLEAR_FLAG(&hrtc,RTC_FLAG_ALRAF | RTC_FLAG_ALRBF);
__HAL_RTC_TIMESTAMP_CLEAR_FLAG(&hrtc,RTC_FLAG_TSF);
__HAL_RTC_WAKEUPTIMER_CLEAR_FLAG(&hrtc,RTC_FLAG_WUTF);
__HAL_RCC_BACKUPRESET_RELEASE();
__HAL_RTC_WRITEPROTECTION_ENABLE(&hrtc);
__HAL_PWR_CLEAR_FLAG(PWR_FLAG_WU);
HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON, PWR_STOPENTRY_WFI);
}