在STM32的STOP2模式下,RTC闹钟唤醒是标准做法,但需注意配置细节以确保SRAM数据保留。首先,确保在进入STOP2前,RCC的LSE(或LSI)时钟已使能并稳定,因为RTC依赖它。其次,配置RTC闹钟中断(如RTC_Alarm_IRQn)并设置NVIC优先级,但进入STOP2前需清除闹钟标志(RTC_AlarmCmd和RTC_ClearFlag)。关键点:STOP2模式下,SRAM内容默认保留,但需检查电源管理单元(PWR)的备份域寄存器(如PWR_CR的DBP位)是否使能,以便RTC在低功耗下工作。另外,确保在进入STOP2前,关闭不必要的外设时钟(如USART、SPI),但保留RTC和PWR时钟。唤醒后,在中断服务程序中重新初始化外设时钟,并恢复GPIO状态。实操建议:使用HAL库的HAL_RTC_SetAlarm_IT和HAL_PWR_EnterSTOPMode,并设置WFI指令。测试时,用调试器观察SRAM变量在唤醒前后是否一致。
mcuku 阿沐 · 2026-08-27