嵌入式--RTC实时时钟原理及相关库函数功能

一、RTC实时时钟原理

1、RTC实时时钟是一个独立的定时器,可以提供日期时间或者闹钟的功能。其核心是通过32位可编程计数器RTC_CNT计数来进行时间配置。

2、图1中RTCCLK为RTC时钟源,其主要是由外部晶振提供时钟源,一般为32.768kHZ如图2所示。RTC_PRL为预分频系数,可自己设置。TR_CLK是经过预分频之后的时钟,比如RTCCLK=32768HZ,RTC_PRL=(32767+1),则TR_CLK为每秒1HZ。RTC_DIV为余数分频器,是为了时钟更加精确。RTC_ALR是闹钟寄存器,可自己设计时间,当RTC_CNT=RTC_ALR时并且设置了中断,则会进入中断。

3、RTC 模块和时钟配置系统是在后备区域,即在系统复位或从待机模式唤醒后 RTC 的设置和时间维持不变。因此在使用RTC模块是必须先对其进行时钟使能:RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR | RCC_APB1Periph_BKP, ENABLE)

4、如图3所示,在寄存器进行配置时必须要注意一些情况,如:

①修改CRH/CRL寄存器,必须先判断RSF位,确定已经同步。

利用库函数RTC_WaitForSynchro()进行配置

②修改CNT,ALR,PRL的时候,必须先配置CNF位进入配置模式,修改完之后,设置CNF位为0退出配置模式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值