当 RTC_SSR 寄存器递减到 0 的时候,会使用 PREDIV_S 的值重新装载 PREDIV_S。而 PREDIV_S 一般为 255,这样,我们得到亚秒时间的精度是:1/256 秒,即 3.9ms 左右,有了这个亚秒寄存器 RTC_SSR,就可以得到更加精确的时间数据。 经过 15 位同步预分频器出来的时钟 ck_spre 可以用于更新日历,...
亚秒由RTC 亚秒寄存器 (RTC_SSR)的值计算得到,公式为:亚秒值 = ( PREDIV_S – SS[15:0] ) / ( PREDIV_S + 1 ) ,SS[15:0]是同步预分频器计数器的值,PREDIV_S是同步预分频器的值。 日期包含的年月日可直接从RTC 日期寄存器 (RTC_DR)中读取。
亚秒由 RTC 亚秒寄存器 (RTC_SSR)的值计算得到,公式为:亚秒值 = ( PREDIV_S – SS[15:0] ) / ( PREDIV_S + 1 ) ,SS[15:0]是同步预分频器计数器的值,PREDIV_S 是同步预 分频器的值。 日期包含的年月日可直接从 RTC 日期寄存器 (RTC_DR)中读取。 每隔2 个 RTCCLK 周期,当前日历值便会...
日历寄存器:RTC_TR(时间寄存器),RTC_DR(日期寄存器) RTC_SSR本质上是一个递减计数器:辅助更新日历 2、RTC初始化和配置(官方文档截取) 3、日历初始化配置 四、总结 1、RTC的寄存器属于后备区域——电池供电可继续工作,RTC内有20个后备寄存器 2、不是所有RTC寄存器都有写保护 默认无写保护的RTC寄存器:RTC_ISR[13...
日期寄存器(RTC_DR):用来初始化配置日历日期 亚秒寄存器(RTC_SSR):用来进一步精确时间变化 控制...
其中PREDIV_S是在配置RTC时候设置的![image-20220421170105647] 得出式子:0.5=SUBFS/(255+1) => SUBFS = 128 。这个值最后会增加到SSR寄存器,SSR寄存器就相当于多跑128后才会增加一秒,达到了延时的作用。向前校准时候要就需要先把S值增加一秒在将SSR的寄存器增加(1-增加的秒值)。
异步预分频器(async):7bit、默认值为128,产生ck_apre时钟信号,为亚秒级计数器RTC_SSR提供时钟; 同步预分频器(sync):15bit、默认值为256,产生ck_spre时钟信号,为日历更新提供时钟; 本文中采用LSE作为RTC外设时钟源,在两个分频器的值都是默认值的情况下,最后产生的时钟节拍为「1Hz」。
当应用读取日历寄存器时,它会访问影子寄存器的内容。也可以通过将 RTC_CR 寄存器的BYPSHAD 控制位置 1 来直接访问日历寄存器。默认情况下,该位被清零,用户访问影子寄存器。 在BYPSHAD=0 模式下读取 RTC_SSR、RTC_TR 或 RTC_DR 寄存器时,APB 时钟频率(f APB ) 必须至少为 RTC 时钟频率 (f RTCCLK ) 的 7...
3、亚秒寄存器【RTC_SSR】实时记录亚秒计数器的值,具体由SS[15:0]体现; 4、亚秒时间通过算式(PREDIV_S-SS)/(PREDIV_S+1)求得; 我们知道RTC除了提供基本的日历功能外,还有很好的低功耗特性,常用于低功耗的唤醒。有些低功耗应用场合,虽然系统需要周期性的唤醒,但对唤醒周期的一致性要求往往并不严格、很多时...
预分配器(RTC_PRER)分为2个部分:一个通过RTC_PRER寄存器的PREDIV_A位配置的7位异步预分频器。另一个通过RTC_PRER寄存器的PREDIV_S位配置的15位同步预分频器。经过7位异步预分频器出来的时钟ck_apre可作为RTC_SSR亚秒递减计数器(RTC_SSR)的时钟,ck_apre时钟频率的计算公式如下: 当RTC_SSR寄存器递减到0...