
STM32F030满足条件后配置RTC唤醒 void RTC_AlarmConfig(void) { RTC_TimeTypeDef sTime = {0}; RTC_AlarmTypeDef sAlarm = {0}; /* Get current time */ HAL_RTC_GetTime(&hrtc, &sTime, RTC_FORMAT_BIN); sAlarm.AlarmTime.Hours = sTime.Hours; sAlarm.AlarmTime.Minutes = sTime.Minutes; sAlarm.AlarmTime.Seconds = sTime.Seconds + 5; sAlarm.AlarmTime.SubSeconds = 0; sAlarm.AlarmTime.DayLightSaving = RTC_DAYLIGHTSAVING_NONE; sAlarm.AlarmTime.StoreOperation = RTC_STOREOPERATION_RESET; sAlarm.AlarmMask = RTC_ALARMMASK_DATEWEEKDAY|RTC_ALARMMASK_HOURS |RTC_ALARMMASK_MINUTES;//|RTC_ALARMMASK_SECONDS sAlarm.AlarmSubSecondMask = RTC_ALARMSUBSECONDMASK_ALL; sAlarm.AlarmDateWeekDaySel = RTC_ALARMDATEWEEKDAYSEL_DATE; sAlarm.AlarmDateWeekDay = 1; sAlarm.Alarm = RTC_ALARM_A; if (HAL_RTC_SetAlarm_IT(&hrtc, &sAlarm, RTC_FORMAT_BIN) != HAL_OK) { Error_Handler(); } } 然后调用HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON, PWR_STOPENTRY_WFI)进入STOP模式正常,但是RTC唤醒后第二次调用HAL_PWR_EnterSTOPMode函数发现MCU没有进入STOP模式,这个是什么原因啊? |
检查一下哪个外设的中断标志是否没有清除![]() |