- 1、本文档共16页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第二十章RTC实时时钟实验战舰STM32开发板
ALIENTEK 战舰STM32开发板
第二十章 RTC 实时时钟实验
前面我们介绍了两款液晶模块,这一章我们将介绍STM32 的内部实时时钟(RTC )。在本
章中,我们将利用ALIENTEK 2.8 寸TFTLCD 模块来显示日期和时间,实现一个简单的时钟。
另外,本章将顺带向大家介绍BKP 的使用。本章分为如下几个部分:
20.1 STM32 RTC 时钟简介
20.2 硬件设计
20.3 软件设计
20.4 下载验证
282
ALIENTEK 战舰STM32开发板
20.1 STM32 RTC 时钟简介
STM32 的实时时钟(RTC )是一个独立的定时器。STM32 的RTC 模块拥有一组连续计数
的计数器,在相应软件配置下,可提供时钟日历的功能。修改计数器的值可以重新设置系统当
前的时间和日期。
RTC 模块和时钟配置系统(RCC_BDCR 寄存器)是在后备区域,即在系统复位或从待机模式
唤醒后RTC 的设置和时间维持不变。但是在系统复位后,会自动禁止访问后备寄存器和RTC ,
以防止对后备区域(BKP)的意外写操作。所以在要设置时间之前, 先要取消备份区域(BKP )
写保护。
RTC 的简化框图,如图20.1.1 所示:
图20.1.1 RTC 框图
RTC 由两个主要部分组成(参见图20.1.1),第一部分(APB1 接口)用来和APB1 总线相连。
此单元还包含一组16 位寄存器,可通过APB1 总线对其进行读写操作。APB1 接口由APB1 总
线时钟驱动,用来与APB1 总线连接。
另一部分(RTC 核心) 由一组可编程计数器组成,分成两个主要模块。第一个模块是RTC 的
预分频模块,它可编程产生 1 秒的RTC 时间基准TR_CLK 。RTC 的预分频模块包含了一个20
位的可编程分频器(RTC 预分频器) 。如果在RTC_CR 寄存器中设置了相应的允许位,则在每个
TR_CLK 周期中RTC 产生一个中断(秒中断) 。第二个模块是一个32 位的可编程计数器,可被
初始化为当前的系统时间,一个32 位的时钟计数器,按秒钟计算,可以记录4294967296 秒,
约合136 年左右,作为一般应用,这已经是足够了的。
283
ALIENTEK 战舰STM32开发板
RTC 还有一个闹钟寄存器RTC_ALR ,用于产生闹钟。系统时间按TR_CLK 周期累加并与
存储在RTC_ALR 寄存器中的可编程时间相比较,如果RTC_CR 控制寄存器中设置了相应允许
位,比较匹配时将产生一个闹钟中断。
RTC 内核完全独立于RTC APB1 接口,而软件是通过APB1 接口访问RTC 的预分频值、计
数器值和闹钟值的。但是相关可读寄存器只在RTC APB1 时钟进行重新同步的RTC 时钟的上升
沿被更新,RTC 标志也是如此。这就意味着,如果APB1 接口刚刚被开启之后,在第一次的内
部寄存器更新之前,从APB1 上都处的RTC 寄存器值可能被破坏了(通常读到0 )。因此,若
在读取RTC 寄存器曾经被禁止的RTC APB1 接口,软件首先必须等待RTC_CRL 寄存器的RSF
位(寄存器同步标志位,bit3 )被硬件置1。
要理解RTC 原理,我们必须先通过对寄存器的讲解,让大家有一个全面的了解。接下来,
我们介绍一下RTC 相关的几个寄存器。首先要介绍的是RTC 的控制寄存器,RTC 总共有2 个
控制寄存器RTC_CRH 和RTC_CRL,两个都是16 位的。RTC_CRH 的各位描如图20.1.2 所示:
图20.1.2 RTC_CRH 寄存器各位描述
该寄存器用来控制中断的,我们本章将要用到秒钟中断,所以在该寄存器必须设置最低位
为1,以允许秒钟中断。我们再看看RTC_CRL 寄存器。该寄存器各位描述如图20.1.3 所示:
284
ALIENTEK 战舰STM32开发板
图20.1.3 RTC_CRL 寄存器各位描述
本章我们用到的是该寄存器的 0、3~5 这几个位,第 0 位是秒钟标志位,我们在进入闹钟
中断的时候,通过判断这位来决定是不是发生了秒钟中断。然后必须通过软件将该位清零(写
0 )。第3 位为寄存器同步标志位,我们在修改控制寄存器RTC_CRH
您可能关注的文档
最近下载
- XX附属中学集团化办学三年发展规划 .pdf
- ESICM 2023年ARDS的指南、定义、表型和呼吸支持策略.docx
- 小学数学六年级下册期末测试卷附答案.docx
- 部编版语文四年级上册第3单元习作《写观察日记》优质课件.pptx VIP
- 新北师大版九年级全一册初中物理全册教案(教学设计).doc
- WI-EA-7-W19001治具验收规范A2.doc
- TJSJCXH 4-2023 先张法预应力超高强混凝土管桩.docx VIP
- 人教版数学四年级下册期末测试卷附完整答案(易错题).docx
- 2024中国兵器工业集团有限公司总部招聘(29人)备考试题及答案解析.docx VIP
- 科尔摩根控制器操作手册.pdf
文档评论(0)