×

基于STM32F103VET6的串口数字时钟的设计与实现

消耗积分:0 | 格式:rar | 大小:0.3 MB | 2017-11-27

分享资料个

  本文介绍了利用处理器STM32F103VET6的实时时钟模块,设计一个简单的数字时钟的方法。在对处理器STM32F103VET6的实时时钟模块进行正确设置后,处理器会每一秒钟通过串口发送数据到PC机上显示实时时间。

  1.2 STM32实时时钟简介

  STM32处理器的实时时钟是一个独立的定时器。RTC模块拥有一组连续计数的计数器,在相应软件配置下,可提供时钟日历的功能。修改计数器的值可以重新设置系统当前的时间和日期。

  RTC模块和时钟配置系统(RCC_BDCR寄存器)处于后备区域,即在系统复位或从待机模式唤醒后,RTC的设置和时间维持不变。系统复位后,对后备寄存器和RTC的访问被禁止,这是为了防止对后备区域(BKP)的意外写操作。执行以下操作将使能对后备寄存器和RTC的访问:

  l 设置寄存器RCC_APB1ENR的PWREN和BKPEN位,使能电源和后备接口时钟

  l 设置寄存器PWR_CR的DBP位,使能对后备寄存器和RTC的访问。

  RTC由两个主要部分组成如图1-1所示:

  基于STM32F103VET6的串口数字时钟的设计与实现

  图1-1 RTC框图

  第一部分(APB1接口)用来和APB1总线相连。此单元还包含一组16位寄存器,可通过APB1总线对其进行读写操作。APB1接口由APB1总线时钟驱动,用来与APB1总线接口。另一部分(RTC核心)由一组可编程计数器组成,分成两个主要模块。第一个模块是RTC的预分频模块,它可编程产生最长为1秒的RTC时间基准TR_CLK。RTC的预分频模块包含了一个20位的可编程分频器(RTC预分频器)。如果在RTC_CR寄存器中设置了相应的允许位,则在每个TR_CLK周期中RTC产生一个中断(秒中断)。第二个模块是一个32位的可编程计数器,可被初始化为当前的系统时间。系统时间按TR_CLK周期累加并与存储在RTC_ALR寄存器中的可编程时间相比较,如果RTC_CR控制寄存器中设置了相应允许位,比较匹配时将产生一个闹钟中断。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !