当前位置: 首页 > news >正文

蓝桥杯—STM32G431RBT6(RTC时钟获取时间和日期)

一、RTC是什么,有什么用?

在 STM32 中,RTC(Real-Time Clock,实时时钟)主要有以下作用:

  1. 时间保持:即使在系统断电情况下,也能持续记录时间。(需要纽扣电池供电)
  2. 提供时间基准:为系统提供准确的时间信息,便于各种时间相关的操作和任务。
  3. 事件记录:可用于记录特定事件发生的时间。

主要包含日历、闹钟和自动唤醒这三部分的功能,其中的日历功能我们使用的最多。日历包含两个32bit的时间寄存器,可直接输出时分秒,星期、月、日、年。其中使用最多的是LSE,LSE由一个外部的32.768KHZ(6PF负载)的晶振提供,精度高,稳定,RTC首选。LSI是芯片内部的30KHZ晶体,精度较低,会有温漂,一般不建议使用。HSE_RTC由HSE分频得到,最高是750khz,使用的也较少。因为我们的竞赛板子上只有HSE和LSI,并未连接LSE,因此我们使用HSE_RTC

在 RTC(实时时钟)中:

同步分频是指分频操作与时钟信号同步进行。也就是说,分频器的工作节奏与时钟信号的节奏一致,数据的传输和处理在时钟的控制下进行,这种方式可以确保分频结果的准确性和稳定性。

异步分频则是指分频操作与时钟信号不同步。可能会存在一些相位偏差或不确定性,在某些情况下可能会对系统的性能或时间精度产生一定影响。

 

         同步分频和异步分频主要有以下区别:

  1. 时钟关系:同步分频的输出时钟与输入时钟同步,而异步分频的输出时钟与输入时钟不同步。
  2. 相位关系:同步分频的输出相位与输入相位直接相关,而异步分频的输出相位可能存在不确定性。
  3. 精度:一般情况下,同步分频的精度更高,因为它受到输入时钟的直接控制;异步分频的精度可能会受到一些因素的影响。
  4. 稳定性:同步分频相对更稳定,而异步分频在某些情况下可能会出现抖动或不稳定的情况。

    选择同步分频或异步分频通常需要考虑以下因素:

  5. 系统要求:如果对时间精度和稳定性有较高要求,通常会优先选择同步分频。
  6. 电路复杂性:异步分频可能相对简单,但同步分频可能需要更复杂的电路设计。
  7. 应用场景:根据具体的应用环境和需求来决定,比如一些对相位关系要求不严格的场景可能更适合异步分频。

 

 

二、使用步骤

dfcee18f788443e48fad3adf37ff87f5.png

69afdab7b0504fc0a1dea524e1dd2ad9.png

 

 

三、代码

定义结构体(日期和时间)

RTC_DateTypeDef rtc_date;
RTC_TimeTypeDef rtc_time;

在LCD函数中获取值

注意,两个都要获取一下,不然容易出毛病

 

  1. HAL_RTC_GetDate(&hrtc, &rtc_date, RTC_FORMAT_BIN);:通过调用HAL_RTC_GetDate函数,从指定的hrtc实时时钟获取日期信息,并将其存储到rtc_date结构体中。RTC_FORMAT_BIN表示以二进制格式获取日期。
  2. HAL_RTC_GetTime(&hrtc, &rtc_time, RTC_FORMAT_BIN);:同样地,通过调用HAL_RTC_GetTime函数,从指定的hrtc实时时钟获取时间信息,并将其存储到rtc_time结构体中。RTC_FORMAT_BIN表示以二进制格式获取时间。
	HAL_RTC_GetDate(&hrtc,&rtc_date,RTC_FORMAT_BIN);HAL_RTC_GetTime(&hrtc,&rtc_time,RTC_FORMAT_BIN);

在LCD中显示

  1. sprintf(buf," Date:%02d-%02d-%02d", rtc_date.Year, rtc_date.Month, rtc_date.Date);:使用sprintf函数将日期信息按照指定的格式(年、月、日,均为两位数字)写入buf字符串中。
  2. LCD_DisplayStringLine(Line3, (uint8_t*)buf);:将包含日期信息的字符串显示在液晶屏的第 3 行。
  3. sprintf(buf," Time:%02d-%02d-%02d", rtc_time.Hours, rtc_time.Minutes, rtc_time.Seconds);:类似地,使用sprintf函数将时间信息按照指定的格式(时、分、秒,均为两位数字)写入buf字符串中。
  4. LCD_DisplayStringLine(Line4, (uint8_t*)buf);:将包含时间信息的字符串显示在液晶屏的第 4 行。
sprintf(buf," Date:%02d-%02d-%02d",rtc_date.Year,rtc_date.Month,rtc_date.Date);//RTC时钟LCD_DisplayStringLine(Line3,(uint8_t*)buf);sprintf(buf," Time:%02d-%02d-%02d",rtc_time.Hours,rtc_time.Minutes,rtc_time.Seconds);LCD_DisplayStringLine(Line4,(uint8_t*)buf);

四、开源代码

通过网盘分享的文件:19-TEST9-RTC实时时钟.zip
链接: https://pan.baidu.com/s/150G8rln1ZEBG1QCZBqrMAQ?pwd=0820 提取码: 0820

 

 

相关文章:

蓝桥杯—STM32G431RBT6(RTC时钟获取时间和日期)

一、RTC是什么,有什么用? 在 STM32 中,RTC(Real-Time Clock,实时时钟)主要有以下作用: 时间保持:即使在系统断电情况下,也能持续记录时间。(需要纽扣电池供电…...

DriveVLM 论文学习

论文链接:https://arxiv.org/abs/2402.12289 解决了什么问题? 自动驾驶对交通行业有着革命性的作用,实现 FSD 的一个主要障碍就是场景理解。场景理解涉及在复杂且不可预测的环境中进行导航,这些环境可能包括恶劣的天气条件、复杂…...

Unity3D 客户端多开

Unity3D 实现客户端多开 客户端多开 最近在做好友聊天系统,为了方便测试,需要再开一个客户端。 简单的方法,就是直接拷贝一个新的项目,但是需要很多时间和占用空间。 查阅了网络资料,发现有一种软链接,…...

使用代理IP数据采集都需要注意那些?

“在当今大数据时代,数据采集成为了企业决策和个人研究的重要依据。然而频繁访问目标网站往往会引发IP被封锁的风险,这时使用代理IP就显得尤为重要。但代理IP的使用并非毫无风险,以下是使用代理IP进行数据采集时需要注意的几个关键事项。” 一…...

城市大脑:智慧城市的神经中枢——典型实践与经验启示

随着信息技术的飞速发展,智慧城市已成为全球城市转型升级的重要方向。“城市大脑”作为智慧城市的核心引擎,正以其强大的数据处理能力、智能决策支持和跨领域协同优势,引领着城市管理与服务的深刻变革。本文将深入探讨几个具有代表性的“城市…...

嵌入式中CW32多功能测试笔实现

前言 起心动念 在日常的硬件调试工作中,我们最常使用的仪器仪表可能就是万用表了,虽然万用表号称“万用”,但大部分时候,我们需要使用到的功能无非是电压测量和通断测量。 作为调试的“得力干将”,万用表有时候也会存在存在一些缺点和局限性,比如:体积较大不便于携带…...

Python 时间占位符:毫秒的使用

Python 时间占位符:毫秒的使用 在 Python 中,处理时间和日期是一个非常常见的任务。在进行时间格式化时,使用占位符来表示特定的时间单位是非常重要的。特别是毫秒(ms),它在许多应用中扮演着关键角色&…...

深度学习:(七)梯度下降法在神经网络中的应用

梯度下降法在神经网络中的应用 事先规定: 用 n n n 表示个数(维度): n [ 0 ] n x n^{[0]}n_x n[0]nx​ ,表示单个训练样本 x x x 的元素个数; n [ 1 ] n^{[1]} n[1] 表示隐藏层 1 1 1 的单元(节点&am…...

HarmonyOS---权限和http/Axios网络请求

网络请求(http,axios) 目录 一、应用权限管理1.1权限的等级1.2授权方式1.3声明权限的配置1.4如何向用户进行申请 二、内置http请求使用三、Axios请求使用(建议)3.1 使用方式一3.2 使用方式二(建议) 一、应用权限管理 应用权限保护…...

信号量SEM

前提 1.信号量的本质是一把计数器 2.申请信号本质就是预订资源 3.PV操作是原子的! 将一个公共资源当做整体访问-->锁 如果公共资源不当做整体使用,多进程可以并发的访问公共资源,但不是同一个区域,为了将资源均分,所以有了…...

828华为云征文 | 基于华为云Flexus云服务器X搭建部署——AI知识库问答系统(使用1panel面板安装)

🚀对于企业来讲为什么需要华为云Flexus X来搭建自己的知识库问答系统??? 【重塑知识边界,华为云Flexus云服务器X引领开源问答新纪元!】 🌟 解锁知识新动力,华为云Flexus云服务器X携…...

从零预训练一个tiny-llama#Datawhale组队学习Task2

完整的教程请参考:datawhalechina/tiny-universe: 《大模型白盒子构建指南》:一个全手搓的Tiny-Universe (github.com) 这是Task2的学习任务 目录 Qwen-blog Tokenizer(分词器) Embedding(嵌入) RMS …...

【Linux探索学习】第二弹——Linux的基础指令(中)——夯实基础第二篇

Linux基础指令(上):【Linux探索学习】第一弹——Linux的基本指令(上)——开启Linux学习第一篇-CSDN博客 前言: 在前面我们已经讲解了一些常用的Linux的基础指令,那些当然是远远不够的&#xff…...

Python和QT哪个更适合嵌入式方向的上位机开发?

最近因为工作需要,需要做一个上位机用来处理收集到的数据,然后进行分析,最好有图标输出,当然还要考虑开发便捷,毕竟平时主要是嵌入式方向开发,核心技术栈主要是Linux和C语言,对于开始上位机并不…...

Unity实战案例全解析:RTS游戏的框选和阵型功能(5)阵型功能 优化

前篇:Unity实战案例全解析:RTS游戏的框选和阵型功能(4)阵型功能-CSDN博客 本案例来源于unity唐老狮,有兴趣的小伙伴可以去泰克在线观看该课程 我只是对重要功能进行分析和做出笔记分享,并未无师自通&#x…...

Android compose 的基本环境搭建

1.创建项目 导入版本 1.gradle/libs.versions.toml [versions] accompanistPermissions "0.36.0" agp "8.5.0-beta01" coilCompose "2.7.0" constraintlayoutComposeVersion "1.0.1" hiltAndroid "2.51.1" hiltNavi…...

git | 合并 commit 的两种方法

比如你最近的 3 次提交分别为 A B C,你想将它们合并成 X。 方案一 使用 git rebase -i HEAD~3 进入编辑: pick 0148079 A pick 29cae72 B pick bf8572a C修改: r 0148079 A f 29cae72 B f bf8572a C:wq 保存进入 commit 编辑页面,输入 X …...

Grafana链接iframe嵌入Web前端一直跳登录页面的问题记录

概述 公司有个项目使用到Grafana作为监控界面,因为项目方的环境极其复杂,仅物理隔离的环境就有三四个,而且每个都得部署项目,今天在某个环境测试,查看界面遇到一个比较奇怪的Grafana问题,后面针对该问题进行跟踪分析并解决,故而博文记录,用于备忘。 问题 登录项目We…...

后端Java-SpringBoot整合MyBatisPlus步骤(超详细)

1.新建项目。 2.点击完上一步的next之后,选择pom.xml文件中的依赖。 3.点击pom文件进行项目初始化。 按照下面的俩步骤刷新一下maven ,让文件生效 4.新建一个application.yml文件 5. 新建一个数据库mp,在数据库中新建一张user表 6.连接数据…...

8609 哈夫曼树

### 思路 1. **选择最小权值节点**:在哈夫曼树构建过程中,选择两个权值最小且父节点为0的节点。 2. **构建哈夫曼树**:根据权值构建哈夫曼树,确保左子树权值小于右子树权值。 3. **生成哈夫曼编码**:从叶子节点到根节点…...

Windows性能优化:任务管理器深度使用指南

Windows性能优化:任务管理器深度使用指南Windows系统运行缓慢、卡顿?系统自带的任务管理器是诊断和解决性能瓶颈的强大工具。本文将带你深度挖掘Windows任务管理器的各项功能,重点介绍如何利用它进行进程管理、性能监控、启动项优化等操作&am…...

PROJECT MOGFACE开源社区贡献指南:从代码阅读到提交PR的全流程

PROJECT MOGFACE开源社区贡献指南:从代码阅读到提交PR的全流程 你是不是也遇到过这样的情况:在GitHub上看到一个很酷的开源项目,比如最近挺火的PROJECT MOGFACE,心里痒痒的,也想贡献点代码,但一打开那庞大…...

从光波“数环”到材料“测温”:迈克尔逊干涉仪在热膨胀系数测量中的创新实践

1. 光波如何变成材料"温度计"? 第一次接触迈克尔逊干涉仪时,我盯着那些不断变化的彩色圆环发了半天呆。谁能想到这些看似简单的光环,竟然能精确测量出金属棒受热后百万分之一米级别的长度变化?这就像用一把能测量头发丝…...

Midscene.js视觉驱动自动化:从认知到实践的AI跨平台控制指南

Midscene.js视觉驱动自动化:从认知到实践的AI跨平台控制指南 【免费下载链接】midscene Let AI be your browser operator. 项目地址: https://gitcode.com/GitHub_Trending/mid/midscene 一、认知篇:理解Midscene.js的技术革新 1.1 破解传统自动…...

C# .NET 周刊|2026年3月1期

国内文章.NET 11 预览版1:CoreCLR 在 WebAssembly 上的全面集成与性能突破https://www.cnblogs.com/shanyou/p/19629649.NET 11 Preview 1 正式发布,标志着 CoreCLR 运行时能原生支持 WebAssembly。这是微软在跨平台战略上的重大进展。CoreCLR 提供更优性…...

SRS服务器从编译到实战:Ubuntu环境下的RTMP/WebRTC全协议测试

SRS服务器从编译到实战:Ubuntu环境下的RTMP/WebRTC全协议测试 在流媒体技术快速发展的今天,构建一个高效、稳定的视频服务器成为许多开发者和企业的核心需求。SRS(Simple Realtime Server)作为一款开源的实时视频服务器,凭借其对多种流媒体协…...

STM32实战指南_基于STM32F103的智能交通灯系统设计与实现(硬件+软件+调试)

1. 项目背景与需求分析 十字路口的交通拥堵是城市治理的经典难题。传统定时切换的交通灯就像个固执的老头子,不管车多车少都按固定节奏工作,经常出现一边排长龙、另一边空荡荡的尴尬场景。这次我们要用STM32F103这颗"最强大脑"给交通灯装上&qu…...

开源TeslaMate:重新定义特斯拉数据监控与分析体验

开源TeslaMate:重新定义特斯拉数据监控与分析体验 【免费下载链接】teslamate teslamate-org/teslamate: TeslaMate 是一个开源项目,用于收集特斯拉电动汽车的实时数据,并存储在数据库中以便进一步分析和可视化。该项目支持监控车辆状态、行驶…...

从零开始:使用Deepspeed ZeRO3优化Qwen3-8B微调,解决多卡显存不足问题

从零开始:使用Deepspeed ZeRO3优化Qwen3-8B微调,解决多卡显存不足问题 当你面对一个8B参数规模的大语言模型时,单卡训练往往显得力不从心。显存不足的报错就像一堵高墙,阻挡着许多开发者的探索之路。而多卡并行训练又带来了新的挑…...

若依框架下,如何让JimuReport积木报表乖乖认你的登录状态?(附完整前后端代码)

若依框架与JimuReport深度整合:实现无缝登录状态管理的全链路实践 在当今企业级应用开发中,权限控制与单点登录已成为基础需求。当我们将若依(RuoYi)这一流行后台管理系统框架与JimuReport报表工具集成时,如何确保两者间的登录状态无缝衔接&a…...