STM32 在低功耗 STOP2 模式下,如何正确配置 RTC 闹钟唤醒且不丢失备份寄存器数据?

· 1 浏览

回答(4)

若使用LSI作为RTC时钟,注意其精度较低,可能影响闹钟准确性。建议使用LSE,并检查LSE是否稳定(LSERDY)。另外,备份寄存器写入前需使能PWR备份访问。
低功耗爱好者 · 2026-08-27
建议使用RTC闹钟中断唤醒,但需在进入STOP2前清除闹钟标志,并配置EXTI线17为上升沿触发,否则可能无法唤醒。唤醒后需重新初始化系统时钟。
时钟控制师 · 2026-08-27
注意:STOP2模式下,备份寄存器由VBAT供电(若VBAT接电池),否则由VDD供电,但STOP2不切断VDD,所以数据不会丢失。只需确保未调用RTC_BackupResetCmd。
电源老司机 · 2026-08-27
在STM32低功耗STOP2模式下配置RTC闹钟唤醒,需确保RTC时钟源为LSE(外部32.768kHz晶振)或LSI,且RTC在STOP2下保持运行(RTC属于低功耗域,STOP2时RTC仍工作)。正确步骤:1)使能PWR和RTC时钟,配置RTC时钟源,初始化RTC并设置闹钟(使用RTC_AlarmCmd使能闹钟中断);2)在进入STOP2前,设置RTC闹钟中断为唤醒源(通过EXTI线17连接RTC闹钟事件,配置EXTI_Line17为上升沿触发,并使能NVIC中断);3)调用PWR_EnterSTOPMode(PWR_Regulator_LowPower, PWR_STOPEntry_WFI)进入STOP2,注意需先关闭备份域写保护(PWR_BackupAccessCmd(ENABLE))以访问备份寄存器,但备份寄存器在STOP2下不会丢失,因为备份域由VBAT供电(若VBAT接电池)或VDD(无电池时),STOP2不切断备份域电源;4)唤醒后,检查RTC闹钟标志并清除,同时重新配置系统时钟(因为STOP2会关闭HSE/HSI,唤醒后需恢复)。备份寄存器数据在STOP2下自动保留,无需额外操作,但需确保未执行备份域复位(如RTC_BackupResetCmd)。实操建议:在进入STOP2前,将关键数据写入备份寄存器(如RTC_WriteBackupRegister),并验证唤醒后读取正确。
mcuku 阿沐 · 2026-08-27