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

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

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

如何使用RTC实现时钟?RTCCLK

RTC的时钟有几个来源有三种  32.768khz  8Mhz  40khz

RTC_PRL是自动重装载寄存器

RTC_DIV 预分频余数寄存器 RTC_DIV的作用就是  可以提供一个更加精确的时钟,

时钟开启之后会给RTC_PRL写一个值(比如100),那么RTCCLK就会被 /100 之后得到 TR_CLK。 TR_CLK的一个周期有100个  RTCCLK ,RTC_DIV在你装载之后它的值就是100,他在 RTCCLK的控制下每一个时钟  减一,

假如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。

 后面有一个 RTC_CNT 32位可编程计数器(向上计数),

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

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

还有一个 RTC_ALR 闹钟中断,当 RTC_ALR=RTC_CNT 的时候就会产生闹钟中断。

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

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

BKP备份寄存器的访问,

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

RTC相关寄存器

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

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

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

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

上图中的 RTC_CRH  控制寄存器主要是一些中断的使能位,如果要开启中断就将相应位使能。

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

OWF   是溢出标志

ALRF  闹钟标志 

SECF  秒标志

位3   RSF 寄存器同步标志,在需要改寄存器之前先要确定RSF寄存器已经同步

位4  CNF位  配置标志 ,如果要修改CRH/CRL 等寄存器的时候,先要将该位置 1,进入配置模式,配置完之后要将他配置为0,退出配置模式。

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

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

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

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

RTC_DIV 是以RTC_CLK为时钟所以他比TR_CLK要精确

 

 

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

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

 

 

 

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

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

 

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

1.先要查询RTOFF位,等待他为 1 表明上一次操作已经完成了。

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

3操作寄存器

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

5 查询RTOFF位,直到它为“1”,表明写操作已经完成。

 

 

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

下面就看他的库函数。

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

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

时钟源选择函数  时钟使能  在RCC文件当中。

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

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

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

 

 

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

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

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

 

你可能感兴趣的:(stm32)