配置要点:1) 使能PWR和RTC时钟,RTC选择LSE(32.768kHz)作为时钟源,确保在STOP模式下RTC继续运行。2) 初始化RTC闹钟(如ALARM_A),设置唤醒时间,并使能闹钟中断。3) 在进入STOP前,调用HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON, PWR_STOPENTRY_WFI),同时需注意:若使用HAL库,需先关闭RTC的备份域写保护(HAL_PWR_EnableBDRAccess),并确保RTC的ALARMF标志被清除。4) 关键点:保持SRAM数据不丢失,STOP模式下SRAM内容自动保留,但需确保所有GPIO在停止前配置为适当状态(如模拟输入或上拉),避免漏电。5) 唤醒后,在RTC闹钟中断服务函数中清除标志,重新配置系统时钟(HAL_RCC_ClockConfig),并恢复外设状态。实操建议:使用HAL库时,进入STOP前调用__HAL_RTC_ALARM_ENABLE_IT,并检查PWR的WUF标志;若需更低功耗,可关闭调试接口(DBGMCU->CR &= ~DBGMCU_CR_DBG_STOP)。
mcuku 阿沐 · 2026-08-27