35 RTC实时时钟实验_第1页
35 RTC实时时钟实验_第2页
35 RTC实时时钟实验_第3页
35 RTC实时时钟实验_第4页
35 RTC实时时钟实验_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、普中STM32开发板带您进入ARM世界,RTC实时时钟实验,普中STM32开发板带您进入ARM世界,本讲主要内容1.STM32F1RTC介绍2.STM32F1RTC配置步骤3.硬件电路4.编写RTC控制程序,普中STM32开发板带您进入ARM世界,1.STM32F1RTC介绍1.1RTC简介STM32的实时时钟(RTC)是一个独立的定时器。STM32的RTC模块拥有一组连续计数的计数器,在相应软件配置下,可提供时钟日历的功能。修改计数器的值可以重新设置系统当前的时间和日期。RTC模块和时钟配置是在后备区域,无论器件状态如何(运行模式、低功耗模式或处于复位状态),只要保证后备区域供电正常,RTC

2、便不会停止工作,所以通常会在后备区域供电端加一个纽扣电池,即使主电源停止供电,后备电源也会启动供电,从而保证RTC时钟不停的运行,只有当主电源和后备纽扣电池都没有电的时,RTC才停止工作。从RTC的定时器特性来说,它是一个32位的计数器,只能向上计数。它的时钟来源有三种,分别为高速外部时钟的128分频(HSE/128)、低速内部时钟LSI以及低速外部时钟LSE。,普中STM32开发板带您进入ARM世界,1.2RTC结构框图STM32F1RTC拥有这么多功能,是由RTC内部结构决定。要更好的理解STM32F1的RTC,就需要了解它内部的结构。如图32.1.1所示:(大家也可以查看STM32F10

3、 x中文参考手册-16实时时钟(RTC)章节内容,普中STM32开发板带您进入ARM世界,系统复位后,默认禁止访问后备寄存器和RTC,防止对后备区域(BKP)的意外写操作。执行以下操作使能对后备寄存器和RTC的访问:(1)设置RCC_APB1ENR寄存器的PWREN和BKPEN位来使能电源和后备接口时钟。(2)设置电源控制寄存器(PWR_CR)的DBP位使能对后备寄存器和RTC的访问。设置后备寄存器为可访问后,在第一次通过APB1接口访问RTC时,因为时钟频率的差异,所以必须等待APB1与RTC外设同步,确保被读取出来的RTC寄存器值是正确的。若在同步之后,一直没有关闭APB1的RTC外设接口

4、,就不需要再次同步了。如果内核要对RTC寄存器进行任何的写操作,在内核发出写指令后,RTC模块在3个RTCCLK时钟之后,才开始正式的写RTC寄存器操作。由于RTCCLK的频率比内核主频低得多,所以每次操作后必须要检查RTC关闭操作标志位RTOFF,当这个标志被置1时,写操作才正式完成。,普中STM32开发板带您进入ARM世界,2.STM32F1RTC配置步骤接下来我们介绍下如何使用库函数对STM32F1的RTC进行配置。这个也是在编写程序中必须要了解的。具体步骤如下:(RTC相关库函数在stm32f10 x_rtc.c和stm32f10 x_rtc.h文件中)(1)使能电源时钟和后备域时钟,

5、开启RTC后备寄存器写访问RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR,ENABLE);RCC_APB1PeriphClockCmd(RCC_APB1Periph_BKP,ENABLE);PWR_BackupAccessCmd(ENABLE);/打开后备寄存器访问(2)复位备份区域,开启外部低速振荡器BKP_DeInit();RCC_LSEConfig(RCC_LSE_ON);,普中STM32开发板带您进入ARM世界,(3)选择RTC时钟,并使能RCC_RTCCLKConfig(RCC_RTCCLKSource_LSE);RCC_RTCCLKCmd(ENA

6、BLE);(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);,普中STM32开发板带您进入ARM世界,(5)更新配置,设置RTC中断分组RTC_ExitConfig

7、Mode();/退出配置模式,更新配置voidBKP_WriteBackupRegister(uint16_tBKP_DR,uint16_tData);BKP_WriteBackupRegister(BKP_DR1,0XA0A0);uint16_tBKP_ReadBackupRegister(uint16_tBKP_DR);,普中STM32开发板带您进入ARM世界,(6)编写RTC中断服务函数RTC_IRQHandlerFlagStatusRTC_GetFlagStatus(uint32_tRTC_FLAG);RTC_ClearITPendingBit(RTC_IT_SEC);,普中STM32开发板带您进入ARM世界,3.硬件电路本实验使用到硬件资源如下:(1)D1指示灯(2)串口1(3)RTCD1指示灯、串口1电路在前面章节都介绍过,这里就不多说,至于RTC它属于STM32F1芯片内部的资源,只要通过软件配置好即可使用。D1指示灯用来提示系统运行状态。串口1将读取的RTC时间日期信息打印出来。这里需要注意RTC不能断电,否则时间数据将会丢失,如果想让时间在断电后还可以继续走,那么必须确保开发板上的纽扣电池有电。,普中STM32开发板带您进入ARM世界,4.编写RTC控制程序本章所要实现的功能是:设置RTC

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论