常见的手机、智好手表、打算机上都有日历、闹钟、待机以及唤醒功能,这些功能的实现利益于电子芯片中的RTC实时时钟电路和相应的后备域寄存器。即纵然在系统掉电的情形下,只须要一颗小小的钮扣电池与低速振荡器(LSI)就可以坚持RTC的事情。
对付很多电子产品,如果较永劫光地不进行任何操作,为了降落系统功耗,常常须要将其待机,等知足一定条件(如闹钟事宜、外部触发事宜)的时候再将其唤醒重新事情。
STM内部的RTC时钟是一个完备独立于MCU的32位计数器,因此,可以最大计数2的32次方秒钟,约136年。

RTC内部事情示意图
下图所示的阴影部分为STM32的后备域,重启或复位MCU,都不能直接操作后备域的寄存器,必须手动取消后备域的写保护才能操作。
这个后德域包含了两个最主要的寄存器:20位的RTC预分频器和32位的RTC可编程计数器。预分频器常日设置为32767,这样在外部低速振荡器频率为32.768KHz就可以产生准确的秒脉冲:32767+1)/32.768KHz,该脉冲驱动RTC计数器进行计数,同时产生一个秒中断事宜。
本次实验将编写一个RTC时钟演示程序,类似于我们日常利用的电子表,仿照在开拓板断电的情形下时钟依然能够正常计时。
实验预期效果:启动程序后,可以看到LCD上显示当前日期和韶光,按下开拓板上的复位键或者断电再重启,韶光会自动补回,不会变慢了,持续进行计数。
程序编写
STM32F4系列的RTC不须要中断就可以事情,以是只须要编写一个主VI就可以。
一,主VI,配置RTC时钟寄存器一样平常步骤
1,确认RTC是否配置过
当返回值为1时,表明RTC之前已经精确设置过,并且处于正常事情状态;当返回值为0时,表示RTC重启过尚未设置(常日是纽扣电池没电或LSI没起振),就进行第2、3步
2,RTC重新初始化
开启后备域时钟、初始化外部低速振荡器、配置后备域干系寄存器
3,RTC更新韶光
重置日期和韶光,年份的范围:1970~2106。
4,获取当前日期和韶光
二,将日期和韶光在LCD上显示出来
LCD初始化;日期显示;韶光显示;符号: -显示。
4,RTC更新韶光
重置日期和韶光,年份的范围:1970~2106。
5,RTC时钟使能(这个必须先开)
三,编译下载
LCD上实时显示的效果
Labview实验二十一:RTC实验(电子钟和日历显示)