补充:
- RTC有一个纽扣电池,要把电池的时钟打开(后备电源的时钟)
- 打开后备区域的时钟
RCC时钟
RCC的时钟来源有三个,HSE的128分频,LSE32768KHZ, LSI40KHZ。三选一。
stm32后备区域
1、时钟和存储器在CPU中独立出来。RTC模块和时钟配置系统(RCC_BDCR) 处于后备区域,在系统复位和待机唤醒之后,RTC的设置和时间维持不变。系统复位之后对RTC和后备寄存器的访问是截止的,这是防止对后备寄存器(BKP)的意外写操作
RTC
1、RTC有两个独立的复位类型
——APB1接口由系统复位
——RTC核心(预分频器、计数器、分频器、闹钟),只能由后备区域复位
就是说APB1和RTC完全独立,互不影响。
RTC完全独立于RTCAPB1接口
软件通过APB1接口访问RTC的预分频值、计数器……,但是有个大前提:当APB1接口的时钟和RTC的时钟保持同步时,才能通过接口访问RTC。比如曾经APB1接口被关闭,停止运行,再次运行之后就要等待与RTC时钟同步。
2、只有RTC进入配置模式之后才能对RTC的寄存器进行写操作。另外对RTc的任何写操作都必须等待前一次写操作结束。就是说只要对RTC寄存器进行了写操作,就要等待,直到操作完成(CRL寄存器的RTOFF置位)
2.1 ** 配置过程 **(访问时序)
(1)查询RTOFF位,直到变为1。确保上一次的写操作已经完成
(2)置位CNF标志,进入配置模式
(3)对RTC寄存器进行写操作
(4)复位CNF标志,退出配置模式
(5)再次查询RTOFF,直到变为1。确认写操作已经完成。
** 需要注意的是:只有CNF位被请0之后,写操作才能进行,这个过程至少需要3个RTCCLK周期 **
BKP简介
又叫备份寄存器,是42个16位的寄存器组成。能存放84个字节的数据。当电源(VDD)被切断,备份寄存器由VBAT供电。所以当系统被复位时,后备寄存器不会被复位
BKP控制寄存器有侵入检测和RTC校准功能。复位后后备寄存器和RTC的访问被禁止,以防止意外的写操作,通过电源的CR寄存器能够使能对他们的访问。