在STM32低功耗模式下同时保持RTC和外部中断工作,需选择停止模式(Stop)而非待机模式(Standby),因为待机会关闭RTC和大部分外设。具体操作:1)配置RTC为唤醒源,使用RTC闹钟或唤醒定时器,设置周期中断;2)外部中断(如EXTI)需配置为上升沿/下降沿触发,并确保GPIO在低功耗模式下保持输入状态;3)进入Stop前,关闭不必要的外设时钟(如USART、SPI),但保留RTC和EXTI的时钟源(通常为LSE或LSI);4)使用HAL_PWR_EnterSTOPMode(),并设置WFI或WFE指令;5)唤醒后需重新配置系统时钟(如HSE),因为Stop会关闭HSE。实操建议:优先使用RTC闹钟作为主唤醒源,外部中断作为紧急唤醒,两者可同时触发,但需在中断服务函数中区分来源。注意:若使用LSE,需确保外部晶振稳定,否则改用LSI(精度较低)。
mcuku 阿沐 · 2026-08-27