stm32的RTC

RTC是一种特殊的定时器,特殊之处在于RTC模块和时钟配置系统(RCC_BDCR寄存器)在后备区域(BKP,因此在系统复位或从待机模式唤醒后RTC的设置和时间维持不变。

由于在后备区域,所以不能人以访问修改。

启动访问RTC的操作:

1、设置寄存器RCC_APB1ENRPWREN BKPEN位来使能电源和后备接口时钟。

2、设置寄存器PWR_CRDBP位使能对后备寄存器和RTC的访问。

RTC时钟

RTC时钟由两部分组成,第一部分为PCLK1,用于向RTC寄存器读写寄存器的时钟。第二部分时钟为RTC的核心时钟,例如时钟计数等,RTC的核心时钟源可有三种:

①HSE时钟除以 128

②LSE振荡器时钟

③LSI振荡器时钟

RTC中断类型

时钟源可进行再次分频作为计数器的基本周期,最长可大一秒钟,因此又称为秒中断(可屏蔽);当计数器减到0时会出现下溢中断(可屏蔽);闹钟中断:当计数器与闹钟寄存器数值一样时会出现闹钟中断(可屏蔽)。

复位后不可变寄存器:RTC_PRLRTC_ALRRTC_CNTRTC_DIV寄存器。

RTC寄存器

可读寄存器只在与

RTC APB1 时钟进行重新同步的RTC时钟的上升沿被更新,因此会在未同步时读取寄存器时会出现不正确数据,通常会出现在以下三种情况之下:

①发生系统复位或电源复位

②系统刚从待机模式唤醒

③系统刚从停机模式唤醒

为达到数据正确,在进行数据读时需要查看同步标志位RSF位。

配置RTC寄存器过程:

1.   查询RTOFF位,直到RTOFF的值变为’1’(查看上一次是否对寄存器写入完成) 

2.   CNF值为,进入配置模式 (只有进入配置模式才能对寄存器写入)

3.   对一个或多个RTC寄存器进行写操作 

4.   清除CNF标志位,退出配置模式 

5.   查询RTOFF,直至RTOFF位变为’1’ 以确认写操作已经完成。 

仅当CNF标志位被清除时,写操作才能进行,这个过程至少需要3RTCCLK 周期。

注:RTC预分频器余数寄存器存储的数据为RTC的以时钟源为周期的计数,并非分频后的周期。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章