【蓝桥杯嵌入式】RTC——实时时钟

一、RTC简介

RTC

        RTC—real time clock,实时时钟,主要包含日历、闹钟和自动唤醒这三部分的功能,其中的日历功能我们使用的最多。日历包含两个32bit的时间寄存器,可直接输出时分秒,星期、月、日、年。

从Cubemx里的配置选项我们也可以看到功能。

时钟源

  • 其中使用最多的是LSE,LSE由一个外部的32.768KHZ(6PF负载)的晶振提供,精度高,稳定,RTC首选。
  • LSI是芯片内部的30KHZ晶体,精度较低,会有温漂,一般不建议使用。
  • HSE_RTC由HSE分频得到,最高是750khz,使用的也较少。

因为我们的竞赛板子上只有HSE和LSI,并未连接LSE,所以我们这里选用LSI作为时钟源。

预分频器

预分频器PRER由7位的异步预分频器APRE和15位的同步预分频器SPRE组成。异步预分频器时钟CK_APRE用于为二进制 RTC_SSR 亚秒递减计数器提供时钟,同步预分频器时钟CK_SPRE用于更新日历。 异步预分频器时钟fCK_APRE=fRTC_CLK/(PREDIV_A+1), 同步预分频器时钟f:sub:CK_SPRE=fRTC_CLK/(PREDIV_S+1),)。 使用两个预分频器时,推荐将异步预分频器配置为较高的值,以最大程度降低功耗。

二、cubemx配置

模式和时钟源的配置上面已经展示,在此不作展示

  • 配置12小时制还是24小时制
  • 配置异步预分频器APRE和15位的同步预分频器SPRE
  • 配置日历

如有需要自习配置闹钟功能,在闹钟中断服务回调函数里进行代码编写。

// 启动闹钟中断事件HAL_RTC_SetAlarm_IT(&hrtc, &sAlarm, RTC_FORMAT_BIN);

 三、RTC时钟实验

int main(void)
{/* USER CODE BEGIN 1 */RTC_TimeTypeDef S_F_M;RTC_DateTypeDef N_Y_R;/* USER CODE END 1 *//* MCU Configuration--------------------------------------------------------*//* Reset of all peripherals, Initializes the Flash interface and the Systick. */HAL_Init();/* USER CODE BEGIN Init *//* USER CODE END Init *//* Configure the system clock */SystemClock_Config();/* USER CODE BEGIN SysInit *//* USER CODE END SysInit *//* Initialize all configured peripherals */MX_GPIO_Init();MX_TIM3_Init();MX_TIM6_Init();MX_TIM17_Init();MX_RTC_Init();/* USER CODE BEGIN 2 */display_init();/* USER CODE END 2 *//* Infinite loop *//* USER CODE BEGIN WHILE */HAL_TIM_Base_Start_IT(&htim6);  while (1){HAL_RTC_GetTime(&hrtc,&S_F_M,RTC_FORMAT_BIN);HAL_RTC_GetDate(&hrtc,&N_Y_R,RTC_FORMAT_BIN);char text[30] ;sprintf(text,"  %d.%d.%d",S_F_M.Hours,S_F_M.Minutes,S_F_M.Seconds);//时间LCD_DisplayStringLine(Line2,(u8*)text);sprintf(text,"  %d.%d.%d",N_Y_R.Year,N_Y_R.Month,N_Y_R.Date);//日期LCD_DisplayStringLine(Line3,(u8*)text);sprintf(text,"  %d",N_Y_R.WeekDay);//星期几LCD_DisplayStringLine(Line4,(u8*)text);/* USER CODE END WHILE *//* USER CODE BEGIN 3 */}/* USER CODE END 3 */
}

关键处:①两个结构体

	RTC_TimeTypeDef S_F_M;RTC_DateTypeDef N_Y_R;

 ②获取时间和日期(两个函数必须同时使用)

    HAL_RTC_GetTime(&hrtc,&S_F_M,RTC_FORMAT_BIN);HAL_RTC_GetDate(&hrtc,&N_Y_R,RTC_FORMAT_BIN);

四、实验现象

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/297324.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HTTPS传输过程

HTTPS:超文本传输安全协议 相较于HTTP明文传输,HTTPS增加了SSL/TLS进行了加密增加了通信的安全性。 SSL和TLS是两个不同的加密方法,SSL是TLS的前身,现在绝大多数浏览器使用的是TLS,所以着重了解以下TLS的概念即可。 首…

接口测试之测试原则、测试用例、测试流程......

一、接口的介绍 软件测试中,常说的接口有两种:图形用户接口(GUI,人与程序的接口)、应用程序编程接口(API)。 接口(API)是系统与系统之间,模块与模块之间或者…

Open3D(C++) 法向量精细化处理

目录 一、算法原理1、原理概述2、参考文献二、代码实现三、结果展示1、平滑前1、平滑后本文由CSDN点云侠原创,原文链接。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫与GPT。

在集群中使用deepspeed如果端口被占用可以使用deepspeed参数更改

在集群中使用deepspeed如果端口被占用可以使用deepspeed参数更改 这一次G老师不好使了 在集群中使用deepspeed默认的端口号29500被占用,显示更改居然不起作用 G老师给的方法也不好使 #!/bin/bash MASTER_ADDRlocalhost MASTER_PORT29501 # 选择一个未被占用的端…

C++ 11是如何封装Thread库的?

引言 C11 标准引入了一个重要的特性,即原生线程支持,这标志着C语言在并发编程领域迈出了坚实的步伐。在此之前,开发人员在进行跨平台的多线程编程时,不得不依赖于操作系统提供的特定API,如Windows API或POSIX Threads…

接口调用成功后端却一直返回404

vuespringboot 我在vue.config.js中配置了向后端的反向代理 然后使用了axios向后端发送post请求 可以看到可以接收到前端传来的值 但是前端控制台却报了 “xhr.js:245POST http://localhost:7777/api/login 404 (Not Found)” 最后询问我那智慧的堂哥... ... 解决办法是把C…

《QT实用小工具·五》串口助手

1、概述 源码放在文章末尾 该项目实现了串口助手的功能,可在界面上通过串口配置和网络配置进行串口调试。 基本功能 支持16进制数据发送与接收。支持windows下COM9以上的串口通信。实时显示收发数据字节大小以及串口状态。支持任意qt版本,亲测4.7.0 到…

即将截稿 CCF-A多媒体顶会ACM MM‘24 北京时间4月9日提交摘要

会议之眼 快讯 第32届ACM MM (ACM MULTIMEDIA)即国际多媒体会议将于 2024 年 10月28 -日11月1日在澳大利亚墨尔本隆重举行!MM是由ACM(Association for Computing Machinery,计算机协会)主办的国际性学术会议,是计算机…

Docker,anaconda环境的部署与迁移

功能上线将提上日程,但是如何将我windows环境下的程序放到linux服务器的测试环境跑通呢?这是我这整个清明假期将要解决的一件事,最蠢的办法就是看自己的环境下有哪些依赖,如何到服务器上一个一个下,但是首先这个方法很…

Day79:服务攻防-中间件安全IISApacheTomcatNginx弱口令不安全配置CVE

目录 中间件-IIS-短文件&文件解析&蓝屏&写权限 HTTP.SYS(CVE-2015-1635)主要用作蓝屏破坏,跟权限不挂钩 IIS短文件(iis全版本都可能有这个问题) IIS文件解析 IIS写权限 中间件-Nginx-文件解析&目录穿越漏洞&CRLF …

DFS(基础,回溯,剪枝,记忆化)搜索

DFS基础 DFS(深度优先搜索) 基于递归求解问题,而针对搜索的过程 对于问题的介入状态叫初始状态,要求的状态叫目标状态 这里的搜索就是对实时产生的状态进行分析检测,直到得到一个目标状态或符合要求的最佳状态为止。对于实时产生新的状态…

天猫双十一美妆销售数据分析-Python数据分析项目

文章目录 项目介绍关键词 一、读取数据一、读取数据二、数据清洗2.1 重复数据处理2.2 缺失值处理2.3 提取表格中有用信息并新增为列 三、数据探索3.1 各品牌SKU数3.2 品牌总销量和总销售额3.3 各类别的销售量、销售额情况3.4 各品牌热度3.5 各品牌价格3.6 男性护肤品销量情况3.…

Vuex的模块化管理

1:定义一个单独的模块。由于mutation的第二个参数只能提交一个对象,所以这里的ThisLog是个json串。 2:在Vuex中的index.js中引入该模块 3:在别的组件中通过...mapState调用模块保存的State的值。 4:用...mapMutations修…

基于php医院预约挂号系统

摘 要 随着信息时代的来临,过去的管理方式缺点逐渐暴露,对过去的医院预约挂号管理方式的缺点进行分析,采取计算机方式构建医院预约挂号系统。本文通过阅读相关文献,研究国内外相关技术,开发并设计一款医院预约挂号系统…

【逆向思考 】【拓扑排序】1591. 奇怪的打印机 II

本文涉及的知识点 逆向思考 拓扑排序 LeetCode1591. 奇怪的打印机 II 给你一个奇怪的打印机,它有如下两个特殊的打印规则: 每一次操作时,打印机会用同一种颜色打印一个矩形的形状,每次打印会覆盖矩形对应格子里原本的颜色。 一…

活动回顾丨掘金海外,探寻泛娱乐社交APP出海新风口

3月中旬,Flat Ads携手声网、XMP在广州成功举办“泛娱乐社交APP出海新风口——广州站”的主题线下沙龙活动。 多位大咖与泛娱乐社交APP赛道的行业伙伴汇聚一堂。本次活动邀请到Flat Ads 市场VP 王若策、声网娱乐视频产品负责人 陈际陶、XMP资深产品运营专家 屈俊星等多位行业大…

材料物理 笔记-4

原内容请参考哈尔滨工业大学何飞教授:https://www.bilibili.com/video/BV18b4y1Y7wd/?p12&spm_id_frompageDriver&vd_source61654d4a6e8d7941436149dd99026962 或《材料物理性能及其在材料研究中的应用》(哈尔滨工业大学出版社) 离…

Stable Diffusion扩散模型【详解】小白也能看懂!!

文章目录 1、Diffusion的整体过程2、加噪过程2.1 加噪的具体细节2.2 加噪过程的公式推导 3、去噪过程3.1 图像概率分布 4、损失函数5、 伪代码过程 此文涉及公式推导,需要参考这篇文章: Stable Diffusion扩散模型推导公式的基础知识 1、Diffusion的整体…

OpenHarmony实战:小型系统移植概述

驱动主要包含两部分,平台驱动和器件驱动。平台驱动主要包括通常在SOC内的GPIO、I2C、SPI等;器件驱动则主要包含通常在SOC外的器件,如 LCD、TP、WLAN等 图1 OpenHarmony 驱动分类 HDF驱动被设计为可以跨OS使用的驱动程序,HDF驱动框…

MySQL安装卸载-Linux

目录 1.概述 2.安装 2.1.上传 2.2.解压 ​​​​​​​2.3.安装 ​​​​​​​2.4.启动服务 ​​​​​​​2.5.查询临时密码 ​​​​​​​2.6.修改临时密码 ​​​​​​​2.7.创建用户 ​​​​​​​2.8.分配权限 ​​​​​​​2.9.重新链接 3.卸载 3.1.停…