打印
[其他ST产品]

STM32CubeMX-实时时钟(RTC)

[复制链接]
310|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
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 16:25:49。     生成报告以及代码,编译程序。添加应用程序    在rtc.c文件中可以看到ADC初始化函数。在stm32f7xx_hal_rtc.h头文件中可以看到rtc时间和日期读写操作函数。

    从操作函数中可以看到,时间和日期是以结构体的形式读写的。所以在main.c文件前面申明两个结构体变量存储读取的时间和日期数据。



    在stm32f7xx_hal_rtc.h头文件中,可以找到RTC_TimeTypeDef,RTC_DateTypeDef这两个结构体的成员变量。
    在while循环中添加应用程序,读取当前的时间和日期,并通过串口发送到电脑上显示。

    程序中使用HAL_RTC_GetTime(),HAL_RTC_GetDate()读取时间和日期,并保存到结构体变量中,然后通过串口输出读取的时间和日期。注意:要先读取时间再读取日期,如果先读取日期在读取时间会导致读取的时间不准确,一直都是原来设置的时间。
实验效果    编译程序并下载到开发板。打开串口调试助手。设置波特率为115200。串口助手上会显示RTC的时间日期。



使用特权

评论回复
沙发
RTC时钟具有高小型可靠性和调整时钟精度的特点,无需电路匹配

使用特权

评论回复
板凳
ingramward| | 2023-1-6 14:07 | 只看该作者
STM32的 RTC掉电后还继续计数吗?

使用特权

评论回复
地板
sesefadou| | 2023-1-6 19:34 | 只看该作者
stm32rtc后备电池掉电很快吧

使用特权

评论回复
5
kmzuaz| | 2023-1-9 11:12 | 只看该作者
stm32芯片自带的RTC和DS1302的实时时钟区别大不大

使用特权

评论回复
6
dspmana| | 2023-1-9 16:24 | 只看该作者
STM32CubeMX怎么配置BCD格式?

使用特权

评论回复
7
earlmax| | 2023-1-11 22:17 | 只看该作者
这个STM32CubeMX真好用

使用特权

评论回复
8
lzbf| | 2023-1-12 15:21 | 只看该作者
STM32的RTC能产生毫秒级的中断吗

使用特权

评论回复
9
modesty3jonah| | 2023-1-16 15:24 | 只看该作者
STM32CubeMX的RTC掉电会丢失数据的。

使用特权

评论回复
10
febgxu| | 2023-1-16 17:02 | 只看该作者
是否可以配置RTC为ms中断呢?

使用特权

评论回复
11
wooda| | 2023-1-17 22:47 | 只看该作者
本帖最后由 wooda 于 2023-1-17 22:51 编辑

正好看到,真麻烦,生成个rtc时间还需要拼字符串,就不能有一个函数直接生成2023 01 15 12:00:00这样的字串么。。。
哪怕像linux那样直接出一个1970.1.1到现在的秒数也好啊,很多时候也只需要这样一个时间值给数据作为标记而已。

我们是写嵌入式程序,不是做windows,HAL驱动程序费劲巴拉把RTC变成分离的年月日时分秒,然后我们程序里面再费劲巴拉地组合起来。。。这不是折腾吗

使用特权

评论回复
12
bestwell| | 2023-1-19 12:35 | 只看该作者
这个如何配置STM32CubeMX的中断呢?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1413

主题

3784

帖子

5

粉丝