- 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
您可能关注的文档
最近下载
- 外研社三起小学英语六年级下册全册教案.pdf VIP
- 中小企业可持续发展问题研究2.doc VIP
- (第二次全国土地调查土地分类.doc VIP
- DLT 5210.1-2021 电力建设施工质量验收规程全套表格必威体育精装版1至200页.docx
- DLT 5210.1-2021 电力建设施工质量验收规程全套表格必威体育精装版201至400页.docx
- 北京市海淀区2024年七年级下学期数学期中考试试卷及答案.pdf VIP
- Unit 3 第1课时 Get ready ~ Start up(课件)2024-2025学年度外研版英语三年级下册.pptx
- 团播主持人话术.pdf VIP
- 【社会化网格治理研究的国内外文献综述5700字】.docx VIP
- 社区心理咨询室工作方案及流程.docx VIP
文档评论(0)