RTC(Real Time Clock):实时时钟
BCD码:用4位2进制来表示10以内的十进制的形式。
RTC的时钟源:LSE(32.768KHZ)、HSE_RTC、LSI。经过一个精密校准(RTC_CALR)。再经过7位的预分频器进行分频(RTC_PRER,默认127+1=128)会产生一个ck_apre()时钟。再经过粗略校准(RTC_CALPR)。再经过RTC_PRER(一个同步15位预分频器(默认值=256),影子寄存器(RTC_SSR))。然后,再产生一个ck_spre(默认1HZ)为真正的RTC核心时钟,然后,提供1HZ的频率给日历(影子寄存器,RTC_TR,RTC_DR,是时间和日期的寄存器)。同步15位预分频器的影子寄存器(RTC_SSR的时钟来自于ck_apre,它的初值来自于RTC_PRER,假设为256,当它计数到零,那么ck_apre就产生了256次,而ck_spre只产生了一次送到日历去)和日历的影子寄存器决定了精确的时间。当闹钟A或者B的时间跟日历时间相等,则产生闹钟。
下面是自动唤醒:时钟源经过精密校准(RTC_CALR),再经过WUCKSEL[1:0]分频,输出到时钟选择器。然后进入到RTC_WUTR(16位唤醒自动重载寄存器)。当自动装载寄存器设置为某值,比如100,当自减到0,去唤醒WUTF,开启标志位,去产生中断。
备份寄存器BKP
RTC常用寄存器
时间: 2024-10-08 16:59:37