RTC 时钟源选择
MM32F3273 的 RTC 模块支持两个时钟源:
低速外部晶振:32.768 kHz,精度高,推荐用于时间保持。
低速内部 RC 振荡器:约 32 kHz,低功耗但精度差。
初始化流程示意(以 LSE 为例):
c
复制
编辑
RCC->APB1ENR |= RCC_APB1ENR_PWREN; // 使能电源模块
PWR->CR |= PWR_CR_DBP; // 允许访问 RTC 和备份寄存器
RCC->BDCR |= RCC_BDCR_LSEON; // 启动 LSE
while (!(RCC->BDCR & RCC_BDCR_LSERDY)); // 等待 LSE 稳定
RCC->BDCR |= RCC_BDCR_RTCSEL_LSE; // 选择 LSE 为 RTC 时钟源
RCC->BDCR |= RCC_BDCR_RTCEN; // 使能 RTC
// 初始化 RTC,设置时分秒、日历等
RTC->WPR = 0xCA; RTC->WPR = 0x53; // 解锁写保护
RTC->ISR |= RTC_ISR_INIT; // 进入初始化模式
while (!(RTC->ISR & RTC_ISR_INITF)); // 等待进入 INIT 模式
// 设置预分频器、时间、日期...
RTC->ISR &= ~RTC_ISR_INIT; // 退出初始化
RTC->WPR = 0xFF; // 恢复写保护
|