首页/外设速查/RTC
📅

RTC 实时时钟

系统外设
掉电继续走时的日历时钟:日志时间戳、定时唤醒、低功耗设备的核心。
🧩 核心原理
📈 时序 / 工作过程图
RTC 备份域供电示意主电断开 → Vbat 续命走时,恢复后时间不丢电源主电源Vbat 备份电池供电恢复主电RTC 计数主电断电期间 RTC 持续走时(秒/闹钟寄存器由备份域供电)应用:日志时间戳 · 定时唤醒(低功耗待机模式)· 日历功能
⚙️ 配置 / 使用要点
  1. 使能 PWR/RTC 时钟,配置 LSE
  2. 设置日期时间(HAL_RTC_SetDate/SetTime)
  3. 配置闹钟/唤醒中断 + NVIC
  4. 读取:HAL_RTC_GetTime/GetDate
🛠️ 项目示例
RTC 定时唤醒低功耗(每分钟唤醒采集上报)
// 进入停机模式前配置唤醒定时器
HAL_RTCEx_SetWakeUpTimer_IT(&hrtc, 0x1FFF, RTC_WAKEUPCLOCK_RTCCLK_DIV16);
// 32.768k/16 = 2048Hz,0x1FFF=8191 → 4s

// 进入 STOP 模式
HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON, PWR_STOPENTRY_WFI);

// 唤醒后:重新配置系统时钟 → 采集传感器 → 上报 → 再睡
void RTC_WKUP_IRQHandler(void){
  HAL_RTCEx_WakeUpTimerIRQHandler(&hrtc);
}
❓ 面试高频
RTC为什么断电还在走?
RTC模块和备份寄存器由Vbat引脚独立供电(纽扣电池/法拉电容),主电源断掉后仅RTC区域工作
RTC时钟源选LSE还是LSI?
LSE 32.768kHz精确(日历必须);LSI约32kHz误差大,适合唤醒定时器
RTC时间误差怎么校准?
LSE晶振偏差(±20ppm)导致日误差约1.7s,可测实际偏差后用RTC校准寄存器补偿或软件周期校时
✅ 自查清单 (点击勾选,本地保存)
0/0
知道备份域与Vbat
知道LSE/LSI选择
会用闹钟/唤醒定时器
会读RTC时间
知道低功耗唤醒流程