35.STM32单片机RTC实时时钟实验.pptVIP

  1. 1、本文档共11页,可阅读全部内容。
  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文档。上传文档
查看更多

RTC实时时钟实验本讲主要内容 1.STM32F1RTC介绍 2.STM32F1RTC配置步骤 3.硬件电路 4.编写RTC控制程序 1.STM32F1RTC介绍1.1RTC简介 STM32的实时时钟(RTC)是一个独立的定时器。STM32的RTC模块拥有一组连续计数的计数器,在相应软件配置下,可提供时钟日历的功能。修改计数器的值可以重新设置系统当前的时间和日期。 RTC模块和时钟配置是在后备区域,无论器件状态如何(运行模式、低功耗模式或处于复位状态),只要保证后备区域供电正常,RTC便不会停止工作,所以通常会在后备区域供电端加一个纽扣电池,即使主电源停止供电,后备电源也会启动供电,从而保证RTC时钟不停的运行,只有当主电源和后备纽扣电池都没有电的时,RTC才停止工作。 从RTC的定时器特性来说,它是一个32位的计数器,只能向上计数。它的时钟来源有三种,分别为高速外部时钟的128分频(HSE/128)、低速内部时钟LSI以及低速外部时钟LSE。 1.2RTC结构框图 STM32F1RTC拥有这么多功能,是由RTC内部结构决定。要更好的理解STM32F1的RTC,就需要了解它内部的结构。如图32.1.1所示:(大家也可以查看《STM32F10x中文参考手册》-16实时时钟(RTC)章节内容 系统复位后,默认禁止访问后备寄存器和RTC,防止对后备区域(BKP)的意外写操作。执行以下操作使能对后备寄存器和RTC的访问:(1)设置RCC_APB1ENR寄存器的PWREN和BKPEN位来使能电源和后备接口时钟。(2)设置电源控制寄存器(PWR_CR)的DBP位使能对后备寄存器和RTC的访问。 设置后备寄存器为可访问后,在第一次通过APB1接口访问RTC时,因为时钟频率的差异,所以必须等待APB1与RTC外设同步,确保被读取出来的RTC寄存器值是正确的。若在同步之后,一直没有关闭APB1的RTC外设接口,就不需要再次同步了。 如果内核要对RTC寄存器进行任何的写操作,在内核发出写指令后,RTC模块在3个RTCCLK时钟之后,才开始正式的写RTC寄存器操作。由于RTCCLK的频率比内核主频低得多,所以每次操作后必须要检查RTC关闭操作标志位RTOFF,当这个标志被置1时,写操作才正式完成。 2.STM32F1RTC配置步骤 接下来我们介绍下如何使用库函数对STM32F1的RTC进行配置。这个也是在编写程序中必须要了解的。具体步骤如下:(RTC相关库函数在stm32f10x_rtc.c和stm32f10x_rtc.h文件中)(1)使能电源时钟和后备域时钟,开启RTC后备寄存器写访问RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR,ENABLE);RCC_APB1PeriphClockCmd(RCC_APB1Periph_BKP,ENABLE);PWR_BackupAccessCmd(ENABLE);//打开后备寄存器访问(2)复位备份区域,开启外部低速振荡器BKP_DeInit();RCC_LSEConfig(RCC_LSE_ON);(3)选择RTC时钟,并使能RCC_RTCCLKConfig(RCC_RTCCLKSource_LSE);RCC_RTCCLKCmd(ENABLE);(4)设置RTC的分频以及配置RTC时钟RTC_EnterConfigMode();//允许配置RTC_ExitConfigMode();voidRTC_SetPrescaler(uint32_tPrescalerValue);voidRTC_ITConfig(uint16_tRTC_IT,FunctionalStateNewState);RTC_ITConfig(RTC_IT_SEC,ENABLE);voidRTC_SetCounter(uint32_tCounterValue);(5)更新配置,设置RTC中断分组RTC_ExitConfigMode();//退出配置模式,更新配置voidBKP_WriteBackupRegister(uint16_tBKP_DR,uint16_tData);BKP_WriteBackupRegister(BKP_DR1,0XA0A0);uint16_tBKP_ReadBackupRegister(uint16_tBKP_DR);(

文档评论(0)

知识分享 + 关注
实名认证
文档贡献者

分享文档来源于网络和个人创作整理,仅做学习交流使用

1亿VIP精品文档

相关文档