在STM32低功耗STOP2模式下,RTC闹钟唤醒的关键在于正确配置RTC时钟源和唤醒中断,同时确保SRAM数据保持。首先,STOP2模式下,SRAM内容默认保留,但需确保未启用SRAM的低功耗掉电功能(如PWR的SRAM2保持位)。其次,RTC必须使用LSE或LSI作为时钟源,因为HSE/HSI在STOP2下会关闭。配置步骤:1)使能PWR时钟,设置STOP2模式(PWR_CR->LPDS=1,PDDS=0);2)配置RTC时钟为LSE,使能RTC闹钟中断(RTC_AlarmA),并设置闹钟时间;3)在NVIC中使能RTC_IRQn,并设置优先级;4)进入STOP2前,调用HAL_PWR_EnterSTOPMode(),并确保RTC中断标志已清除;5)在RTC中断服务函数中,清除闹钟标志,并重新配置系统时钟(因STOP2退出后需重新初始化HSE/HSI)。注意:若使用LSI,需考虑其精度,且LSI在STOP2下可能关闭,需确认芯片支持。另外,建议在进入STOP2前备份关键数据到SRAM2(若支持),并关闭不必要的外设时钟以降低功耗。
mcuku 阿沐 · 2026-08-27