版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、14 RTC实时时钟14.1基本概念和原则14.1.1 RTC实时时钟简介STM32中的RTC外围设备是电源关闭后继续运行的计时器。从计时器的角度来看,与通用计时器TIM外围设备相比,它非常简单,只有纯计时功能(当然,它可以触发中断)。但是,此设备是STM32中唯一工作的外围设备,此功能仍然锁定。因此,RTC外围设备的复杂性不是随时间变化的功能,而是在电源关闭的情况下继续工作的功能。上述电源切断是指主电源V DD已断开,为了继续运行RTC外围设备的电源,必须通过V BAT针脚将锂电池连接到STM32芯片。主电源V DD有效时,将为RTC外围设备的V DD供电。Vbdd断电后,vcbat将为RT
2、C外围设备供电。但是,RTC中的数据将保留在属于RTC的备份域中,无论其通电方式如何,如果主电源V DD和vbbat都关闭,则存储在备份域中的所有数据都将丢失。除RTC模块上的寄存器外,备份域还具有42个16位寄存器,用于在关闭vbdd电源的情况下保存用户程序的数据,并且在系统重置或电源重置时不会重置这些数据。RTC的计时器属性中可以向上计数的32位计数器。高速外部时钟的128分频(HSE/128;)的三个时间源。低速内部时钟LSI;使用HSE分频时钟或LSI时,如果主电源V DD关闭,将影响两个时钟源,因此不能保证RTC正常工作。因此,RTC通常使用低速外部时钟LSE,即实时时钟模块中常用的
3、32.768KHz,因为它是32768=2 15,并且容易实现分频,因此广泛用于RTC模块。如果主电源V DD有效(待机),RTC还可以配置警报事件,使STM32退出待机模式。图中浅灰色的部分属于备份域,可以在V DD断电的情况下通过V BAT继续运行。此部分仅包含RTC分频器、计数器和报警控制器。如果VDD电源有效,RTC可以触发RTC_Second(秒中断)、RTC_Overflow(溢出事件)和RTC_Alarm(警报中断)。计时器溢出事件可以在不能配置为中断的原理图中进行分析。如果STM32最初处于待机状态,则可能是警报事件或WKUP事件(外部唤醒事件,属于EXTI模块,而不是RTC)
4、,并处于待机模式。当计数器RTC_CNT的值等于报警寄存器RTC_ALR的值时触发报警事件。RTC寄存器属于备份域,因此所有寄存器都是16位。计数器RTC_CNT的32位由两个寄存器组成:RTC_CNTL和RTC_CNTH,它们分别存储数值的低16位和高16位。配置RTC模块的时钟时,实际驱动计数器的时钟时间TR_CLK=rt CLK/32768=1hz,计时周期1秒,计时器在TR _ CLK驱动下计算(每秒计数器RTC_CNT值1)。由于备份域的存在,RTC内核具有与APB1接口完全独立的属性,对RTC寄存器的访问遵循一定的规则。系统重置后,将禁止访问备份寄存器和RTC,从而防止意外写入备份
5、区域(BKP)。您可以通过执行以下操作访问备份寄存器和RTC:(1)设置RCC_APB1ENR寄存器的PWREN和BKPEN位,以启用电源和备份接口时钟。(2)设置PWR_CR寄存器的DBP位,以便访问冗馀寄存器和RTC。设置为可访问后,第一次通过APB1接口访问RTC时,APB1必须与RTC一起排队设置同步以确保读取的RTC寄存器值正确。如果同步后未关闭APB1的RTC外围设备接口,则无需重新同步。如果内核对RTC寄存器执行写入操作,RTC模块将在内核发出写入命令后,经过三个RTCCLK时钟后开始写入RTC寄存器。我们发现RTCCLK的频率比内核由于时钟速度低很多,因此需要检查RTC关闭标志
6、位RTOFF。如果此标志设置为1,则执行写入操作现在才正式完成。当然,上述操作都有库函数,所以读者不必具体审查寄存器。14.1.2 GPIO重新映射功能大多数GPIO具有本机多路复用功能,某些GPIO具有重新映射功能。重新映射功能是通过将最初属于a针的默认多路复用功能传输到b针来使用。但是,仅当b接点具有此重新映射功能时。首先查看电路图,可以看到PB4连接蜂鸣器并检查PB4的功能。基本功能是JNTRST,因此需要重新映射GPIO功能。14.2实施功能实施功能:使用内部低速率振荡器LSI作为RTC时钟,实现小时、分钟、秒显示和全部时间功能(蜂鸣器5声音)。液晶显示器要求:(1)初始化屏幕:第1行
7、:“rtmcdemo”第3行: RTC_Calendar_Test (2)继续在液晶屏上显示时间。第7行: time: *: *: * * * (* *表示小时/秒)初始时间为:103369336905514.3固件库驱动程序实例和函数详细信息14.3.1 RTC驱动程序从固件库的“project STM 32 F10 x _ stdbh _ examples RTC LSI _ calib”文件夹中打开“main . c”:此构造函数全部复制,只需添加一个语句。/* enable PWR和bkpclocks */RCC _ apb1 periphclockcmd(RCC _ apb1 per
8、 iph _ PWR | RCC _ apb1 per iph _ bkp,enable);/*允许PWR和BKP时钟*/* Allow access to BKP Domain */PWR _ BackupAccessCmd(ENABLE);/*允许访问BKP,备份域*/*重置备份域*/BKP _ DeInit();/*重置备份域的软件*/* Enable the LSI OSC */RCC_LSICmd(启用);/*低速内部时钟LSI */* Wait till LSI is ready */while(RCC _ getflagstatus(RCC _ flag _ lsir dy)=r
9、eset)LSI振动稳定性大气*/* Select the RTC Clock Source */RCC _ rtcclkconfig(RCC _ rtcclkesource _ LSI);/*选择LSI作为RTC外围设备的时钟*/* enable rtccclock */Rcc _ rtcclkpmd(启用);/* RTC时钟*/* wait for RTC registers synchron ization */RTC _ wait for syncro();/*等待RTC寄存器与APB1同步*/* wait until last write operation on RTC regis
10、ters has finished */RTC _ WaitForLastTask();/*等待对RTC的写入完成*/* Enable the RTC Second */RTC_ITConfig(RTC_IT_SEC,ENABLE);/* RTC秒可中断*/* wait until last write operation on RTC registers has finished */RTC _ WaitForLastTask();/*等待对RTC的写入完成*/* set RTC prescaler : set RTC period to 1 sec */RTC _ set prescale
11、r(40000);/* RTC周期=rt clk/RTC _ pr=(40 khz)/(39999 1)*/*设定RTC时脉频率分割:RTC周期为1秒,测试后可以使用程式修正*/* wait until last write operation on RTC registers has finished */RTC _ WaitForLastTask();/*等待对RTC的写入完成*/*在此处添加门*/RTC _ set counter(HH * 3600MM * 60 SS);/RTC计数器设置,总时间(秒)/*在此处添加门*/RTC _ WaitForLastTask();/*等待对RTC
12、的写入完成*/Void NVIC_Configuration(void)函数需要完全复制,中断函数默认情况下将复制。.If (RTC_GetITStatus(RTC_IT_SEC)!=RESET) RTC _ clearitpendingbit(RTC _ it _ sec);/*清除秒中断标志*/STM _ EVAL _ led toggle(le D1);time display=1;/*标志位置1 */RTC _ WaitForLastTask();/*等待写入操作完成*/根据需要添加其他代码.还可以使用RTC_GetCounter()函数。进入Stm*.RTC.c文件可查看此函数的解释
13、。获取RTC米值。14.3.2 GPIO重新映射从固件库的“project-STM 32 F10 x _ STD PAH _ examples- gpio JTAG _ remap”文件夹中打开“main.c:”RCC _ apb2 periphclockcmd(RCC _ apb2 per iph _ gpioa | RCC _ apb2 per iph _ gpiob |RCC_APB2Periph_AFIO,ENABLE);/打开多路复用功能时钟gpio _ pinremapconfig(gpio _ remap _ swj _ disable,enable);/将用于SWJ下载的IO端
14、口转换为常规IO端口,/关闭下载功能。根据电路图,仅需要配置PB4端口。14.4完整代码实现14.4.1 main函数编程/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *文件名:RTC应用实验*实验目的:确定STM32外围设备RTC的配置和使用方法*程序说明:CT117E谘询平台没有外部低速率定向,因此在常式内,内部低速率振荡器LSI* RTC时钟。*日期版本:2011-9-19/V1.0a* * * * * * * * * * * * * * * * * * *
15、 * * * * * * * * * * * * * * * * * * * * * * * * * * */* includes - includes-*/#include stm32f10x.h # include“LCD . h”# include“stdio . h”/* private typedef - */* private define - */#define HH 10 /城市#define MM 59 /分钟#define SS 55 /秒/* private macro - */* private variables - */uint 32 _ t timing delay=0;uint 32 _ t time display=0;/* private function prototypes - */void Del
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年农业承运新能源建设合同
- 2026智能音箱语音交互准确率提升技术路线报告
- 2026智能家居操作系统市场竞争格局分析
- 2026无人驾驶行业市场趋势分析及技术创新与运营管理策略研究报告
- 铁合金原料工发展趋势模拟考核试卷含答案
- 2020年河北邢台事业编招聘考试真题及答案解析
- 卤氧化铋基复合光催化剂的合成及性能研究
- 鄱阳湖典型洲滩微地形对土壤-植被交互作用的影响研究
- 基于语料库的北京折叠英译本中的翻译共性研究
- 2026江苏省常州市体育运动学校招聘行政人员1人笔试备考题库及答案解析
- 济宁市2026届省属公费师范毕业生就业岗位需求备考题库(112个)含答案详解(能力提升)
- 【 道法 】社会主义市场经济体制课件-2025-2026学年统编版道德与法治八年级下册
- 对外投资合作国别(地区)指南-马来西亚(2025年版)
- 心血管植入型电子器械植入术护理专家共识总结2026
- 2025年大学生提干选拔考试历年真题试卷及答案
- 2025四川宜宾市科技人才集团有限公司第三批员工招聘10人笔试历年参考题库附带答案详解
- 2025年中国邮政经济金融笔试及答案
- 矿用齿轨卡轨车轨道安装要求
- 2025年湖南省政府采购评审专家考试真题库及答案
- 《公路建设法律法规》课件 模块四 公路建设施工法律法规
- 钢结构劳务分包施工方案
评论
0/150
提交评论