STM32的RTC实时时钟是一个独立的定时器。
在相应软件配置下,可提供时钟日历的功能。修改计数器的值可以重新设置系统当前的时间和日期。
RTC
模块和时钟配置系统
(RCC_BDCR
寄存器
)
处于后备区域,即在系统复位或从待机模式唤醒后,
RTC
的设置和时间维持不变。系统复位后,对后备寄存器和
RTC
的访问被禁止,这是为了防止对后备区域
(BKP)
的意外写操作。执行以下操作将使能对后备寄存器和
RTC
的访问:
● 设置寄存器 RCC_APB1ENR的PWREN和BKPEN位,使能电源和后备接口时钟
● 设置寄存器PWR_CR的DBP位,使能对后备寄存器和RTC的访问。
其框图如下:
● 设置寄存器 RCC_APB1ENR的PWREN和BKPEN位,使能电源和后备接口时钟
● 设置寄存器PWR_CR的DBP位,使能对后备寄存器和RTC的访问。
其框图如下:
主要分两个模块:
1、预分频模块(可编程产生最长为1秒的RTC时间基准TR_CLK )
若在RTC_CR设置了相应允许位,则在每个TR_CLK周期中产生一个秒中断
RTC_PRL与RTC_CR都由两个寄存器组成。
2、可编程计数器
计数器的时钟频率定义:fTR_CLK=fRTCCLK/(PRL[19:0]+1); fRTCCLK为外部晶振的频率,为32.768KHz,设置预分频装载寄存器RTC_PRL的值为32767即可得到1s的计数频率。
RTC_CNT按TR_CLK周期累加,并可与RTC——ALR比较,若RTC_CR控制寄存器中设置了相应允许位,比较匹配时将产生一个闹钟中断。
RTC配置步骤:
1.使能电源时钟和备份区域时钟
2.取消备份区写保护
3.复位备份区域,开启外部低速振荡器
4.选择RTC时钟,并使能(选择外部LSE作为RTC时钟)
5.设置RTC的分频,以及配置RTC时钟
6.更新配置,设置RTC中断分组
7编写中断服务函数