STM32 的 RTC 掉电后还走吗?

STM32 · 9 浏览
STM32 的 RTC 掉电后还走吗?

回答(4)

掉电后RTC走时没问题,但闹钟中断唤醒需要EXTI配置,且要确保RTC中断使能,否则唤醒不了。
硬件工程师阿凯 · 2026-08-20
补充:VBAT引脚必须接电池,否则RTC寄存器会复位。另外,LSE晶振要选负载电容匹配的,不然起振慢或停振。
老周玩MCU · 2026-08-20
我一般用超级电容100uF,能撑几秒,够保存关键数据,成本低。但要注意电容漏电,选低ESR的。
嵌入式小强 · 2026-08-20
STM32的RTC在掉电后是否继续走,取决于供电方案。若使用VBAT引脚外接纽扣电池或超级电容,RTC会在主电源断电后继续运行;若仅靠VDD供电,掉电即停止。实操建议:1)硬件上,VBAT接3V电池(如CR2032),并串联二极管防倒灌;2)软件上,配置RTC时钟源为LSE(32.768kHz晶振),并开启备份域写保护(PWR_CR的DBP位);3)掉电后,RTC寄存器由备份域供电,但需注意备份SRAM(若用)同样依赖VBAT。代码示例: ```c RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR | RCC_APB1Periph_BKP, ENABLE); PWR_BackupAccessCmd(ENABLE); // 解除写保护 RCC_LSEConfig(RCC_LSE_ON); while(RCC_GetFlagStatus(RCC_FLAG_LSERDY) == RESET); RCC_RTCCLKConfig(RCC_RTCCLKSource_LSE); RCC_RTCCLKCmd(ENABLE); RTC_WaitForSynchro(); ``` 注意:若VBAT未接,RTC在掉电后时间会丢失,需在启动时检测RTC是否有效(如RTC_ReadBackupRegister)。
mcuku 阿沐 · 2026-08-20