RTC (Real Time Clock)即实时时钟。它可以提供时钟、日历的功能;并且可以使用外部电池供电,在极低的功耗下保持计数,使得断电之后还能够计算时间,所以名为实时时钟。
STM32f103的RTC,本质上是一个32位的计数器,在断电后,由电池供电还能保持计数;要使用时间时,需要将计数器的值换算成日期和时间。
此外,stm32的RTC还具备后备存储区,可以利用电池供电,保存10个16bit的数据。
1)cubemx中配置RTC
我们在之前的串口中断工程上修改,以便于打印数值查看。
使用cubemx打开串口中断的工程,然后另存为RTC工程,增加如下设置,启用RTC,勾选时钟源、日历、以及RTC OUT:
(注意这里选择RTC OUT输出时,固定是PC13引脚,如果我们之前的工程中设置了PC13引脚,要先设为reset模式,再选RTC OUT)
设置RTC的初始时间:
(其实这里设置的用处不大,一般都要设置成当前的时间,所以一般都会在程序运行后,输入当前的时间再设置)