[正点原子]STM32开发板F103 第41讲 RTC实时时钟备份区域BKP原理 QQ860099671

匿名 (未验证) 提交于 2019-12-02 23:34:01

RTC模块与 时钟配置系统在后备区域,在复位时候不会被清除(框图: 中文参考手册)

如何使用RTC实现时钟?RTCCLK

RTC_PRL是自动重装载寄存器

假如RTCCLK=100hz,那么 RTCCLK/RTC_PRL=100/100=1HZ=TR_CLK

RTC_DIV就是从100往下减, 那么需要RTCCLK的一百个周期,RTC_DIV(向下计数器)就会溢出,那么就是每一个RTCCLK周期RTC_DIV就减一。RTC_DIV 比TR_CLK更精确,那么,由以上公式可知,TR_CLK就是1hz也就是1s。

每一个TR_CLK就会加一,一直到overflow(溢出)就会产生中断,

还有一个秒中断 RTC_Second,(一秒钟产生一次中断)

BKP备份寄存器的访问,

RTC相关寄存器

RTC 相关的寄存器定义在stm32f10x.h里面有一个结构体。

寄存器的介绍在《中文参考手册》

RTCOFF 在对RTC寄存器进行写操作之前必须先判断上一次写操作已经结束,也就是判断上一次写操作是否置位。

RTC_PRLH 与RTC_PRLL 就是预分频装载寄存器的高位和低位

表示当前时间的寄存器,通常会配置为1秒钟加一

以上为闹钟寄存器,也是两个16位的,一共32位,它与计数器寄存器基本上是一样的,因为他要与计数器寄存器相比较相等就会产生中断。

2设置CNF位为1,进入配置模式

3操作寄存器

4清除CNF位,退出配置模式。

下面就看他的库函数。

使能电源后备区域的时钟。

使能后备区域的寄存器访问。

文章来源: https://blog.csdn.net/weixin_38787597/article/details/90403776
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!