大家好,
我意识到,从睡眠模式唤醒后 printf 不起作用,我正在使用 rtc 每分钟从睡眠模式唤醒 mcu。这是我的结构配置。
- sAlarm.Alarm = RTC_ALARM_A;
- sAlarm.AlarmDateWeekDay = 0x31; // Nonspecific
- sAlarm.AlarmDateWeekDaySel = RTC_ALARMDATEWEEKDAYSEL_DATE;
- sAlarm.AlarmMask = RTC_ALARMMASK_DATEWEEKDAY | RTC_ALARMMASK_HOURS | RTC_ALARMMASK_MINUTES;
- sAlarm.AlarmSubSecondMask = RTC_ALARMSUBSECONDMASK_NONE;
- sAlarm.Alarmtime.Hours = 0x0;
- sAlarm.AlarmTime.Minutes = 0x0;
- sAlarm.AlarmTime.Seconds = 0x0;
- sAlarm.AlarmTime.SubSeconds = 0x0;
- sAlarm.AlarmTime.DayLightSaving = RTC_DAYLIGHTSAVING_NONE;
- sAlarm.AlarmTime.StoreOperation = RTC_STOREOPERATION_RESET;
每隔一分钟,这段代码就会起作用。
- void HAL_RTC_AlarmAEventCallback(RTC_HandleTypeDef *hrtc)
- {
- __HAL_RTC_ALARM_EXTI_CLEAR_FLAG();
- gsm_machine_debug("rnHAL_RTC_AlarmAEventCallback rn");
- //send_data_flag = 1;
- }
但是如果我用调试窗口让
单片机进入睡眠模式。此回调仍然有效,但 printf 不再有效。
有没有人对它为什么不起作用有任何建议?