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

相关推荐
chao1898444 小时前
STM32 HAL库驱动AT24C02 EEPROM例程
stm32·单片机·嵌入式硬件
猫猫的小茶馆7 小时前
【Python】函数与模块化编程
linux·开发语言·arm开发·驱动开发·python·stm32
feifeigo1237 小时前
STM32矩阵键盘驱动(库函数版)实现
stm32·矩阵·计算机外设
嵌入式小站7 小时前
STM32 零基础可移植教程 05:按键消抖,为什么按一次会触发好几次
chrome·stm32·嵌入式硬件
拾知_H8 小时前
STM32/Delay延时函数编程思路
stm32·单片机·时钟·延时
2zcode10 小时前
基于STM32的智能扫地机器人设计与实现
stm32·嵌入式硬件·机器人
jllllyuz10 小时前
单相并网逆变器控制代码实现(STM32版)
stm32·单片机·嵌入式硬件
音视频牛哥11 小时前
大牛直播SDK(SmartMediaKit)Windows平台RTSP/RTMP直播播放SDK集成说明(C++版)
windows·音视频·实时音视频·windows rtsp播放器·windows rtmp播放器·超低延迟rtsp播放器·超低延迟rtmp播放器
冉卓电子11 小时前
GD32C103RBT6 misc 内核驱动库极简解析
单片机·嵌入式硬件
yongui4783412 小时前
MAX6675 K型热电偶温度采集程序(Keil环境)
单片机·嵌入式硬件