新闻中心

EEPW首页 > 嵌入式系统 > 牛人业话 > STM32再学习——实时时钟(RTC)

STM32再学习——实时时钟(RTC)

作者:jobs时间:2013-10-23来源:电子产品世界收藏

  ,是Real Time Counter的缩写。在中,其实是一组连续计数的,各个产品及系列各不相同。因此,在相应的软件配置下,可提供的功能。当然,修改这个的值也就重新设置了系统当前的时间和日期。

本文引用地址:http://www.eepw.com.cn/article/182407.htm

  只是一个时钟,但与相连的有两个系统时钟,一个是APB1接口的PCLK1另一个是RTC时钟[注意1]。这样,RTC功能也就分为两个部分:第一部分,APB1接口部分,与APB1总线相连,也就是通过这条总线对其进行读写操作。另一部,RTC核,由一系列可编程组成,这部分又再细分为两个组件:预分频模块与32位可编程计数器。预分频模块用来产生最长为1秒的RTC时间基准,而32位的可编程的计数器可被初始化为当前的系统时间。

  下图为RTC简化框图:

  读RTC

  从上面的工作原理可知,RTC核完全独立于RTC APB1接口,软件通过APB1接口来访问RTC的各项参数,包括预分频值、计数器值等等,但是这些参数值只在RTC时钟的上升沿被更新,之后,RTC时钟会与RTC APB1时钟进行重新同步。这里会有一些问题出现,就是在APB1接口刚刚被开启时,第一次的内部更新之前,那么此时从RTC中读出的第一个值可能被破坏了,例如下面所述的三种情况:

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

  •   系统刚从待机模式唤醒

  •   系统刚从停机模式唤醒

  可以简单得出,在APB1接口被禁止时(复位,无时钟或断电)RTC核仍保持运行状态。因此,在禁止了RTC的APB1接口后,软件首先须等等RSF位被硬件置1.

  RTC功能配置

  1. 查询RTOFF 位,直到RTOFF 的值变为“1”

  2. 置CNF 值为1,进入配置模式

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

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

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

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

  注意1:RTC时钟必须小于PCLK1时钟的四分之一以上。

 

尘埃粒子计数器相关文章:尘埃粒子计数器原理


评论


相关推荐

技术专区

关闭