在STM32低功耗模式下配置RTC唤醒源,核心是确保RTC时钟源在低功耗下持续运行,并正确设置唤醒中断。首先,选择LSE(32.768kHz)作为RTC时钟源,因为它能在STOP或STANDBY模式下保持工作。配置步骤:1) 使能PWR和RTC时钟,设置RTC时钟源为LSE;2) 初始化RTC,设置唤醒定时器(如RTC_WakeUpClock_CK_SPRE_16bits),计算预分频值以匹配唤醒周期;3) 使能RTC唤醒中断,并在NVIC中配置优先级;4) 进入低功耗模式前,清除唤醒标志,调用PWR_EnterSTOPMode或PWR_EnterSTANDBYMode。避免复位干扰的关键:确保RTC备份域(BKP)在复位后保持,需使能PWR备份访问,并在系统初始化时检测RTC是否已配置(如检查RTC_ISR的INITS标志),若未配置则重新初始化,否则跳过配置,防止复位覆盖RTC设置。此外,在进入低功耗前,禁用所有不必要的外设中断,并确保唤醒后重新配置系统时钟。实操建议:使用HAL库时,调用HAL_RTCEx_SetWakeUpTimer_IT,并在RTC唤醒回调中处理唤醒逻辑。
mcuku 阿沐 · 2026-08-27