0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

STM32CubeMX-实时时钟(RTC)

STM32嵌入式开发 来源:STM32嵌入式开发 作者:STM32嵌入式开发 2020-10-12 14:34 次阅读

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

    文章

    3146

    浏览量

    112028
  • 串口
    +关注

    关注

    14

    文章

    1483

    浏览量

    74498
  • RTC
    RTC
    +关注

    关注

    2

    文章

    484

    浏览量

    65436

原文标题:STM32CubeMX-实时时钟(RTC)

文章出处:【微信号:c-stm32,微信公众号:STM32嵌入式开发】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    利用STM32CubeMX解读时钟

    提供给芯片中的RTC(实时时钟)及IWDG(独立看门狗)使用。2,中速时钟MSIRC是“中速内部时钟”或“中速内部振荡器”,是STM32L系
    的头像 发表于 11-24 08:00 348次阅读
    利用<b class='flag-5'>STM32CubeMX</b>解读<b class='flag-5'>时钟</b>树

    CW32实时时钟RTC)介绍

    CW32实时时钟RTC)介绍
    的头像 发表于 10-24 15:36 512次阅读
    CW32<b class='flag-5'>实时时钟</b>(<b class='flag-5'>RTC</b>)介绍

    基于FPGA的RTC实时时钟系统设计

    RTC(real time clock)实时时钟,在电脑、手机等电子产品中都有,应用较多。它的主要作用就是,在产品断电之后,时间还可以继续走数。这样我们在重新使用电子产品时,时间仍然正确。芯片本身可以通过纽扣电池供电,接下来我们一起学习一下
    的头像 发表于 08-23 09:29 584次阅读
    基于FPGA的<b class='flag-5'>RTC</b><b class='flag-5'>实时时钟</b>系统设计

    STM32 RTC实时时钟(二)

    上次实验完成了对实时时钟的基本功能——计时的实验,这次在计时的基础上对RTC的可编程闹钟的功能进行测试。
    的头像 发表于 07-22 15:43 1128次阅读
    <b class='flag-5'>STM32</b> <b class='flag-5'>RTC</b><b class='flag-5'>实时时钟</b>(二)

    STM32 RTC实时时钟(一)

    STM32处理器内部集成了实时时钟控制器(RTC),因此在实现实时时钟功能时,无须外扩时钟芯片即可构建
    的头像 发表于 07-22 15:41 2841次阅读
    <b class='flag-5'>STM32</b> <b class='flag-5'>RTC</b><b class='flag-5'>实时时钟</b>(一)

    DA1468x SoC 的实时时钟(RTC) 概念

    DA1468x SoC 的实时时钟 (RTC) 概念
    发表于 07-06 19:27 0次下载
    DA1468x SoC 的<b class='flag-5'>实时时钟</b>(<b class='flag-5'>RTC</b>) 概念

    为什么我们需要一个单独的RTCRTC实时时钟的特点和应用

    你知道RTC实时时钟)吗?即使你不知道它长什么样,它也可以说是安装在我们身边所有电子产品中的一种设备,它的主要目的是“报时”。告诉这个时间不仅仅意味着“现在几点了?”例如,根据RTC被勾选的时间获取位置信息。或者你可以在固定的
    的头像 发表于 07-06 18:22 3699次阅读

    深入浅出了解Linux RTC实时时钟

    实时时钟是个常用的外设,可以用来获取年、月、日和时间等信息。目前大多数的芯片内部都自带了实时时钟外设模块。例如本实验所使用的I.MX6ULL芯片内部SNVS就提供了RTC实时计数器)
    的头像 发表于 05-26 15:06 729次阅读
    深入浅出了解Linux <b class='flag-5'>RTC</b><b class='flag-5'>实时时钟</b>

    RTC时钟与触摸功能详解(下)

    是CPU内部集成RTC模块。STM32F103内部集成了RTC模块,可以通过配置相应的寄存器来实现实时时钟的功能。
    的头像 发表于 05-26 14:45 912次阅读
    <b class='flag-5'>RTC</b><b class='flag-5'>时钟</b>与触摸功能详解(下)

    RTC时钟与触摸功能详解(上)

    是CPU内部集成RTC模块。STM32F103内部集成了RTC模块,可以通过配置相应的寄存器来实现实时时钟的功能。
    的头像 发表于 05-26 14:44 1347次阅读
    <b class='flag-5'>RTC</b><b class='flag-5'>时钟</b>与触摸功能详解(上)

    STM32实时时钟RTC编程详解

    STM32里,一个CPU已经足够,不需要像DS1302这样的实时时钟芯片。实际上,RTC就只一个定时器而已,掉电之后所有信息都会丢失,因此我们需要找一个地方来存储这些信息,于是就找到了备份寄存器。因为它掉电后仍然可以通过纽扣电
    的头像 发表于 05-26 14:32 3121次阅读

    STM32学习笔记之RTC实时时钟2

    STM32实时时钟RTC)是一个独立的定时器。 STM32RTC 模块拥有一组连续计数的计数器,在相应软件配置下,可提供
    的头像 发表于 05-26 14:26 839次阅读
    <b class='flag-5'>STM32</b>学习笔记之<b class='flag-5'>RTC</b><b class='flag-5'>实时时钟</b>2

    STM32学习笔记之RTC实时时钟1

    STM32实时时钟RTC)是一个独立的定时器。 STM32RTC 模块拥有一组连续计数的计数器,在相应软件配置下,可提供
    的头像 发表于 05-26 14:26 1285次阅读
    <b class='flag-5'>STM32</b>学习笔记之<b class='flag-5'>RTC</b><b class='flag-5'>实时时钟</b>1

    实时时钟RTC:32.768kHz晶振

    实时时钟(RTC: Real-Time Clock)是集成电路,通常称为时钟芯片。目前实时时钟芯片大多采用精度较高的晶体振荡器作为时钟源。
    的头像 发表于 05-08 10:45 1856次阅读
    <b class='flag-5'>实时时钟</b><b class='flag-5'>RTC</b>:32.768kHz晶振

    基于STM32单片机RTC实时时钟使用库文件设计

    基于STM32单片机RTC实时时钟使用库文件设计源代码
    发表于 04-26 14:28 2次下载