STM32低功耗模式下RTC唤醒失效,通常不是RTC本身问题,而是时钟配置或唤醒源设置未正确传递。首先,确认RTC时钟源:在低功耗模式(如STOP)下,RTC必须使用LSE或LSI,且确保LSE已启动并稳定(检查LSERDY标志)。其次,检查RTC唤醒定时器(WUT)配置:确保RTC_WakeUpCmd(ENABLE)在进入低功耗前已执行,且中断使能(RTC_ITConfig(RTC_IT_WUT, ENABLE))和NVIC对应中断已开启。若使用外部中断线(EXTI line 20/22),需配置EXTI触发模式为上升沿,并确保PWR时钟使能(__HAL_RCC_PWR_CLK_ENABLE())。实操建议:在进入低功耗前,先测试RTC唤醒是否在正常模式下工作;若失效,用调试器检查RTC->CR的WUTE位和RTC->ISR的WUTF标志。常见修复:将RTC时钟源从LSI切换为LSE(更稳定),并添加__HAL_PWR_CLEAR_FLAG(PWR_FLAG_WU)清除唤醒标志。若仍失败,检查VBAT引脚供电和备份域复位状态。
mcuku 阿沐 · 2026-08-27