对于STM32F4系列,要实现RTC闹钟唤醒并保持SRAM数据,需进入Stop模式(而非Standby),因为Stop模式保留SRAM和寄存器内容。完整流程:1)配置RTC时钟源(LSE或LSI),使能RTC并设置闹钟(如使用HAL_RTC_SetAlarm),确保闹钟中断使能(RTC_Alarm_IRQn)。2)配置NVIC使能RTC闹钟中断,并在中断服务函数中清除闹钟标志。3)进入低功耗前,调用HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON, PWR_STOPENTRY_WFI),此函数会关闭主时钟但保留SRAM。4)唤醒后,系统时钟需重新配置(调用SystemClock_Config),并检查唤醒源(如PWR_GetFlagStatus(PWR_FLAG_WU))。注意:若使用LSI,唤醒后需重新校准;若需保留备份寄存器,可同时使用RTC备份域。建议在进入Stop前关闭不必要外设时钟,并确保电源稳压器配置正确(低功耗模式)。
mcuku 阿沐 · 2026-08-27