STM32HAL库RTC时钟

RTC的结构非常像一个简化版的定时器,核心当然是一个计数器,与定时器的16位计数器只能从0计数到65535不同,RTC的计数器是32位的,可以从0技术到4294967295,RTC的计数器前还有个RTC预分频器,可以将时钟源的时钟信号分频为1Hz的信号;我们往往会采用unix时间戳的形式在RTC计数器中记录时间,unix时间戳是一种在计算机领域通用的时间表示方式,其记录的是从1970年1月1日0时0分0秒到当前时刻的秒数,一些使用有符号32位整数记录unix时间戳的系统,其仅能计数到2038年,随后就会溢出,不过我们的RTC计数器无需符号位,可以从1970年记录到2106年。

我们通过将3.3V接入VDD引脚为其供电,以执行我们的代码程序,而VDD掉电后,程序便无法继续执行。那RTC时钟如何保持掉电后继续走时呢?STM32还为我们提供了VBAT引脚,即使VDD已经掉电,只要我们继续为VBAT引脚供电,STM32就可以维持芯片上一块叫做后备区域的地方继续运行,后备区域内的功能比较简单,耗电很少,因而我们就可以在PCB电路板上板载一颗纽扣电池为其供电,而RTC就在这后备区域中。

接入到RTC的时钟源有三种:LSE(低速外部时钟)、LSI(低速内部时钟)、HSE(高速外部时钟)的128分频。但只有LSE可以在VDD掉电后继续提供时钟信号,因而通常选择低速外部时钟LSE作为RTC时钟信号。其频率为32.768KHz,后经分频器分频为1Hz。另外STM32的RTC上还有简单的闹钟功能,往闹钟寄存器上设置一个时间戳,计数器与闹钟寄存器数值相等时,触发对应的"闹钟中断"。

除了RTC时钟,后备区域内另一个主要功能叫做备份寄存器,在我们使用的STM32F103C8T6芯片中,有10个16位的备份寄存器可以用于存储数据,这些寄存器在VDD掉电后依旧靠VBAT维持,因而可以掉电不丢失,并且配有入侵检测功能,产品可以设计使得外壳被开启后给予入侵检测引脚信号,即使是设备外部供电已经断掉,备份寄存器中的数据也能被清除,适合防止重要数据。此外由于均是VBAT供电,VBAT掉电后RTC与备份寄存器中的数据均会丢失,因而备份寄存器也可以用来检测RTC时钟是否被设置过,或者时间是否因为VBAT掉电而丢失。

。。。等待更新


版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/sakabu/article/details/145409954

相关推荐
自小吃多5 小时前
FreeRTOS Semaphore信号量-笔记
笔记·stm32
Star Curry5 小时前
【读书笔记】《编码:隐匿在计算机软硬件背后的语言》01 逻辑与开关
stm32·单片机·嵌入式硬件·职场和发展·51单片机·学习方法
(未雨绸缪)6 小时前
STM32F103单片机在不需要使用 JTAG 调试接口的情况下,释放引脚给其他功能使用。
stm32·单片机·嵌入式硬件
不脱发的程序猿7 小时前
STM32实现九轴IMU的卡尔曼滤波
stm32·嵌入式硬件
吃货界的硬件攻城狮8 小时前
【STM32 学习笔记】USART串口
笔记·stm32·单片机·学习
吃货界的硬件攻城狮9 小时前
【STM32 学习笔记】I2C通信协议
笔记·stm32·单片机·学习
双叶83610 小时前
(51单片机)LCD显示红外遥控相关数字(Delay延时函数)(LCD1602教程)(Int0和Timer0外部中断教程)(IR红外遥控模块教程)
c语言·数据库·c++·单片机·嵌入式硬件·mongodb·51单片机
爱吃程序猿的喵11 小时前
STM32硬件I2C驱动OLED屏幕
c++·stm32·单片机·嵌入式硬件·c·硬件·i2c
honey ball12 小时前
IPM IMI111T-026H 高效风扇控制板
单片机·嵌入式硬件
小石(努力版)13 小时前
嵌入式STM32学习——继电器
stm32·嵌入式硬件·学习