在STM32低功耗STOP2模式下使用RTC闹钟唤醒,核心是确保LSE(32.768kHz晶振)稳定起振并正确配置唤醒源。首先,进入STOP2前,需配置RTC为闹钟模式,选择LSE作为时钟源,并设置闹钟匹配值(如秒或日期)。为避免LSE起振失败,建议在系统初始化时先启动LSE并等待LSERDY标志置位,同时启用LSE的驱动能力(通过RCC->BDCR的LSEDRV位)以匹配晶振负载电容。若环境温度低或晶振质量差,可增加LSE启动超时(如循环等待LSERDY,超时后重试或回退到LSI)。进入STOP2前,确保RTC中断已使能(EXTI线17或RTC_ALARM),并配置NVIC优先级。唤醒后,在RTC中断服务程序中清除闹钟标志,并重新配置系统时钟。实操建议:使用HAL库的HAL_RTC_SetAlarm_IT和HAL_PWR_EnterSTOPMode,并检查PWR->CR1的LPDS位确保低功耗模式正确。若LSE仍失败,可考虑使用LSI(约32kHz)但精度较低,需调整闹钟补偿。
mcuku 阿沐 · 2026-08-27