前言:stm32系列产品普遍都有实时时钟RTC模块,它提供一个掉电保持计时功能,掉电后由后备供电区域供电。除了提供时间和日期之外,还可以设置闹钟提醒,且可以在待机模式下设置闹钟唤醒系统。在一些小容量、中容量产品中,只有一个32位的计数寄存器,如果该计数寄存器自增1周期设置为1s,那么软件可以根据该计数寄存器的值算出当前的日期和时、分、秒。在一些大容量的产品中,年、月、日、时、分、秒都是独立的寄存器,可直接读出需要的值。
1.RTC简介
实时时钟是一个独立的定时器。RTC模块拥有一组连续计数的计数器,在相应软件配置下,可提供时钟日历的功能。修改计数器的值可以重新设置系统当前的时间和日期。
RTC模块和时钟配置系统(RCC_BDCR寄存器)处于后备区域,即在系统复位或从待机模式唤醒后,RTC的设置和时间维持不变。
2.RTC特性
● 可编程的预分频系数:分频系数最高为
● 32位的可编程计数器,可用于较长时间段的测量。(若最小单位为秒:
=4,294,967,295秒=49,710天 大概136年。)
● 2个分离的时钟:用于APB1接口的PCLK1和RTC时钟(RTC时钟的频率必须小于PCLK1时钟频率的四分之一以上)。
● 可以选择以下三种RTC的时钟源:
─ HSE时钟除以128;
─ LSE振荡器时钟;(常用的是外部低速,稳定精准,重要的是VDD掉电后可有后备供电区域给它供电)
─ LSI振荡器时钟。
● 2个独立的复位类型:
─ APB1接口由系统复位;
─ RTC核心(预分频器、闹钟、计数器和分频器)只能由后备域复位。(可导致后备区域复位:侵入事件、软件复位、VBAT掉电)
● 3个专门的可屏蔽中断:
─ 闹钟中断,用来产生一个软件可编程的闹钟中断。
─ 秒中断,用来产生一个可编程的周期性中断信号(最长可达1秒)。
─ 溢出中断,指示内部可编程计数器溢出并回转为0的状态。
3.RTC功能框图
从左上角开始到右下角看图理解,系统通过APB1总线对后备区域的RTC进行通信,那三斜杠的意思是可断开,因为在系统掉电的时候RTC是独立的,只有在系统运行时才