STM32实时时钟RTC详细解析
前言:
一、RTC简介
STM32的RTC指的是实时时钟(Real-Time Clock),它是一种用于计时和日期记录的硬件模块。在STM32微控制器中,RTC模块是由一个32位的计数器和一组用于保存日期和时间的寄存器组成的。
RTC模块具有很高的精度和稳定性,并且能够在微控制器断电时继续运行,从而保持准确的时间和日期信息。它通常用于需要精确定时和实时数据记录的应用场景,例如时钟、日历、定时器、闹钟、数据采集等。
STM32的RTC模块提供了一系列的功能,包括时钟频率配置、时间和日期的设置与读取、闹钟的设置与触发、定时器功能、中断控制等。通过配置和使用RTC模块,开发者可以实现各种与时间相关的功能和应用。
二、RTC特点
三、RTC时钟
RTC的时钟来源主要有三路,但一般选择中间的那一路。因为它有备用电池供电,可以实现主电源掉电仍然走时;而且32.768kHz正好是2的15次方,经过一个15位的分频器的自然溢出(15位计数器记到最大值32768后自然溢出),就能很方便得到1Hz的频率。
四、BKP简介
BKP本质上是RAM存储器,掉电丢失;
TAMPER:在引脚产生上升沿或者下降沿的时候产生侵入事件;
五、BKP基本结构
小容量和中容量只有DR1~DR10;大容量和互联型有DR1~DR42;
六、RTC框图
RTC_PRL:计数目标(写入n,就是n+1分频);
RTC_DIV:自减计数器,每来一个输入时钟,DIV的值自减一次,减到0后再来一个时钟,从PRL获取到重装值继续自减;
RTC_CNT:Unix时间戳的秒计数器;
RTC_ALR:闹钟寄存器, 当CNT=ALR时会产生RTC_Alarm闹钟信号,就能进入右边的中断系统;同时也可以让STM32退出待机模式;
中断:RTC_Second,秒中断:开启后每秒进一次RTC中断;RTC_Overflow,溢出中断:CNT溢出;RTC_Alarm,闹钟中断:CNT=ALR时会触发中断,同时也可以让STM32退出待机模式;
七、RTC基本结构
八、RTC操作注意事项
作者:汘荨