RTC简介
实时时钟(RTC)是一个独立的 BCD 定时器/计数器。RTC 提供具有可编程闹钟中断功能的日历时钟/日历。RTC 还包含具有中断功能的周期性可编程唤醒标志。系统可以自动将月份的天数补偿为 28、29(闰年)、30和 31 天。只要芯片的备用电源一直供电,RTC上的时间会一直走。
新建工程
本章程序在串口printf工程的基础上修改,复制串口printf的工程,修改文件夹名。点击STM32F746I.ioc打开STM32cubeMX的工程文件重新配置。RTC选择内部唤醒(Internal WakeUp)开启RTC。开启外部低速晶振,PC14,PC15配置。
RTC时钟选择为外部低速晶振(LSE),频率为32.768。
在RTC配置中,设置时间和日期,其他为默认设置。此处设置时间为2016/04/16 1649。
生成报告以及代码,编译程序。
添加应用程序
在rtc.c文件中可以看到ADC初始化函数。在stm32f7xx_hal_rtc.h头文件中可以看到rtc时间和日期读写操作函数。
从操作函数中可以看到,时间和日期是以结构体的形式读写的。所以在main.c文件前面申明两个结构体变量存储读取的时间和日期数据。
/*USERCODEBEGINPV*//*Privatevariables--------*/RTC_DateTypeDefsdatestructure;RTC_TimeTypeDefstimestructure;/*USERCODEENDPV*/
在stm32f7xx_hal_rtc.h头文件中,可以找到RTC_TimeTypeDef,RTC_DateTypeDef这两个结构体的成员变量。
在while循环中添加应用程序,读取当前的时间和日期,并通过串口发送到电脑上显示。
/*USERCODEBEGINWHILE*/while(1){/*USERCODEENDWHILE*//*USERCODEBEGIN3*//*GettheRTCcurrentTime,mustgettimefirst*/HAL_RTC_GetTime(&hrtc,&stimestructure,RTC_FORMAT_BIN);/*GettheRTCcurrentDate*/HAL_RTC_GetDate(&hrtc,&sdatestructure,RTC_FORMAT_BIN);/*DisplaydateFormat:yy/mm/dd*/printf("%02d/%02d/%02d ",2000+sdatestructure.Year,sdatestructure.Month,sdatestructure.Date);/*DisplaytimeFormat:hhss*/printf("%02d:%02d:%02d ",stimestructure.Hours,stimestructure.Minutes,stimestructure.Seconds);printf(" ");HAL_Delay(1000);}/*USERCODEEND3*/
程序中使用HAL_RTC_GetTime(),HAL_RTC_GetDate()读取时间和日期,并保存到结构体变量中,然后通过串口输出读取的时间和日期。注意:要先读取时间再读取日期,如果先读取日期在读取时间会导致读取的时间不准确,一直都是原来设置的时间。
编译程序并下载到开发板。打开串口调试助手。设置波特率为115200。串口助手上会显示RTC的时间日期。
责任编辑:lq
-
定时器
+关注
关注
23文章
3256浏览量
115517 -
串口
+关注
关注
14文章
1562浏览量
77233 -
RTC
+关注
关注
2文章
544浏览量
67138
原文标题:STM32CubeMX-实时时钟(RTC)
文章出处:【微信号:c-stm32,微信公众号:STM32嵌入式开发】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
Abracon推出内置XO实时时钟
RTC时钟芯片+电池的应用案例(一)
![<b class='flag-5'>RTC</b><b class='flag-5'>时钟</b>芯片+电池的应用案例(一)](https://file.elecfans.com/web2/M00/7D/C2/pYYBAGN92XSAIJ_mAACf9RjpktA221.png)
爱普生RTC实时时钟模块助力车载BMS系统更好运行
![爱普生<b class='flag-5'>RTC</b><b class='flag-5'>实时时钟</b>模块助力车载BMS系统更好运行](https://file1.elecfans.com/web1/M00/F5/7F/wKgaoWc9fxSAb6fGAADTchYv4YA682.png)
实时时钟芯片RTC
适用于智能门锁的低功耗RTC实时时钟模块RX8010SJ
![适用于智能门锁的低功耗<b class='flag-5'>RTC</b><b class='flag-5'>实时时钟</b>模块RX8010SJ](https://file1.elecfans.com/web2/M00/C7/73/wKgaomYKfKyANaWEAAAh9cwAwss963.png)
TCXO RTC实时时钟模块的特性
![TCXO <b class='flag-5'>RTC</b><b class='flag-5'>实时时钟</b>模块的特性](https://file1.elecfans.com/web2/M00/03/6B/wKgaoma8KBWAAXzLAAAwBoxu9r8464.png)
评论