基于STM32 RTC实时时钟.pdfVIP

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

1课程设计内容

本文将利用ALIENTEK2.8寸TFTLCD模块来显示日期时间,实现一个简单的

时钟。

2STM32芯片简介

2006年ARM公司推出了基于ARMv7架构的Cortex系列的标准体系结构,

以满足各种技术的不同性能要求,包含A、R、M三个分工明确的系列[1]。其中,

A系列面向复杂的尖端应用程序,用于运行开放式的复杂操作系统;R系列适合

实时系统;M系列则专门针对低成本的微控制领域。Cortex-M3是首款基于

ARMv7-M体系结构的32位标准处理器,具有低功耗、少门数、短中断延迟、低

调试成本等众多优点。它是专门为在微控制系统、汽车车身系统、工业控制系统

和无线网络等对功耗和成本敏感的嵌入式应用领域实现高系统性能而设计的,它

大大简化了编程的复杂性,集高性能、低功耗、低成本于一体[2]。半导体制造

厂商意法半导体ST公司是ARM公司Cortex-M3内核开发项目一个主要合作方,

2007年6月11日ST公司率先推出了基于Cortex-M3内核的STM32系列MCU。

本章将简要介绍STM32系列处理器的分类、内部结构及特点,并对本设计中重

点应用的通用定时器做进一步分析。

2.1STM32RTC时钟简介

STM32的实时时钟(RTC)是一个独立的定时器。STM32的RTC模块拥有一

组连续计数的计数器,在相应软件配置下,可提供时钟日历的功能。修改计数器

的值可以重新设置系统当前的时间和日期。

RTC模块和时钟配置系统(RCC_BDCR寄存器)是在后备区域,即在系统复位

或从待机模式唤醒后RTC的设置和时间维持不变。但是在系统复位后,会自动

禁止访问后备寄存器和RTC,以防止对后备区域(BKP)的意外写操作。所以在要

设置时间之前,先要取消备份区域(BKP)写保护。

RTC的简化框图,如图20.1.1所示:

图20.1.1RTC框图

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年

左右,作为一般应用,这已经是足够了的。

RTC还有一个闹钟寄存器RTC_ALR,用于产生闹钟。系统时间按TR_CLK周期累

加并与存储在RTC_ALR寄存器中的可编程时间相比较,如果RTC_CR控制寄存

器中设置了相应允许位,比较匹配时将产生一个闹钟中断。

RTC内核完全独立于RTCAPB1接口,而软件是通过APB1接口访问RTC的预

分频值、计数器值和闹钟值的。但是相关可读寄存器只在RTCAPB1时钟进行重

新同步的RTC时钟的上升沿被更新,RTC标志也是如此。这就意味着,如果APB1

接口刚刚被开启之后,在第一次的内部寄存器更新之前,从APB1上都处的RTC

寄存器值可能被破坏了(通常读到0)。因此,若在读取RTC寄存器曾经被禁止

的RTCAPB1接口,软件首先必须等待RTC_CRL寄存器的RSF位(寄存器同步

标志位,bit3)被硬件置1。

2.2RTC相关配置

正常工作的一般配置步骤如下:

1)使能电源时钟和备份区域时钟。

前面已经介绍了,我们要访问RTC和备份区域就必须先使能电源时钟和备份区

域时钟。

RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR|RCC_APB1Periph_BKP,

ENABLE);

2)取消备份区写保护。

要向备份区域写入数据,就要先取消备份区域写保护(写保护在每次硬复位之后

文档评论(0)

180****9988 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档