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

STMF4学习笔记RTC(天空星)

        前言:本篇笔记参考嘉立创文档,连接放在最后

#RTC相关概念定义

        Real-Time Clock  缩写  RTC 翻译  实时时钟,是单片机片内外设的一种,作用于提供准确的时间还有日期,这个外设有独立的电源,当单片机停止供电的时候,仍能保持准确的时间。

       RTC由晶振还有计数器组成,晶振产生一个固定频率的信号,计数器对这些信号进行计数,RTC本质上就是一个1S计数器,由此换算出时间,除此之外RTC是一个独立的BCD定时器/计数器,F4的RTC提供一个日历时钟,两个闹钟中断,一个可编程唤醒标志。

#RTC外设电源的选择
RTC电源供电选择有 VDDBAT,如果选择VDD进行供电,在掉电之后,数据不会进行保存,如果使用BAT,也就是纽扣电池进行供电,数据将备份在 备份寄存器中,系统复位,或者系统从待机模式唤醒时,RTC设置与时钟都保持不变。
#RTC常用的功能介绍

时间和日期表示:RTC可以表示时间日期,他可以跟踪年,月,日,分钟和秒的信息

闹钟功能:通过设置时间还有日期触发闹钟发生中断。

定时器功能:RTC支持定时器功能,可以实现周期性的定时触发。

外部中断触发:可以通过外部中断输入来触发中断事件。

        总结:RTC 实时时钟,主要应用就是在掉电或者复位之后,可以准确的提供时间。(使用BAT电源)

#RTC相关代码表示

  RTC模块是在后备区域,但是在系统复位或者从待机模式唤醒后,会自动禁止访问后备寄存器和RTC,防止对后备区域的意外操作,所以在配置RTC的时候,要取消备份区域的写保护

使能对RTC访问:使能对后备寄存器和RTC的访问权限。

设置RTC时钟源:选择外部时钟源和分频系数。

配置RTC结构体:配置RTC结构体基本结构

关闭RTC配置模式:配置结束关闭RTC配置模式

void  RTC_ClockInit(void)
{RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE);//开启时钟PWR_BackupAccessCmd(ENABLE);//使能备份寄存器RCC_LSICmd(ENABLE);//开启LSI外置低俗晶振RCC_RTCCLKConfig(RCC_RTCCLKSource_LSI);//配置RTC时钟来源RCC_RTCCLKCmd(ENABLE);RTC_WaitForSynchro();if(RTC_ReadBackupRegister(RTC_BKP_DR0) != 0x2002)   //一个变量,看看RTC初始化没{printf("Set Time and Date.....\r\n");Rtc_TimerConfig();printf("Set End!!\r\n");}PWR_BackupAccessCmd(DISABLE); // 关闭备份寄存器}
void Rtc_TimerConfig(void)
{RTC_WriteProtectionCmd(DISABLE);//关闭系统自动的读写保护RTC_InitTypeDef RTC_InitStruct;RTC_InitStruct.RTC_AsynchPrediv = RTC_HourFormat_24;RTC_InitStruct.RTC_HourFormat =(uint32_t)0x7F;RTC_InitStruct.RTC_SynchPrediv =(uint32_t)0xFF; RTC_Init(&RTC_InitStruct);RTC_TimeTypeDef RTC_TimerStruct;RTC_TimerStruct.RTC_H12 = RTC_H12_AM;RTC_TimerStruct.RTC_Hours = 18;RTC_TimerStruct.RTC_Minutes = 10;RTC_TimerStruct.RTC_Seconds = 1;RTC_SetTime(RTC_Format_BIN,&RTC_TimerStruct);RTC_DateTypeDef  RTC_DataStruct;RTC_DataStruct.RTC_Date = 11; RTC_DataStruct.RTC_Month = RTC_Month_March ;RTC_DataStruct.RTC_WeekDay = 1;RTC_DataStruct.RTC_Year = 24;RTC_SetDate(RTC_Format_BIN,&RTC_DataStruct);RTC_EnterInitMode();//关闭RTC编辑模式RTC_WriteBackupRegister(RTC_BKP_DR0,0x2002);RTC_WriteProtectionCmd(ENABLE);}
void RtcShowTime(void)
{// 时间结构体RTC_TimeTypeDef RTC_TimeStructure;// 日期结构体RTC_DateTypeDef RTC_DateStructure;        // 获取RTC日期RTC_GetTime(RTC_Format_BIN, &RTC_TimeStructure);  // 获取RTC时间RTC_GetDate(RTC_Format_BIN, &RTC_DateStructure);//将获取到的RTC时间BIN二进制再通过串口输出printf("Current time: %d:%d:%d  ", \RTC_TimeStructure.RTC_Hours,  RTC_TimeStructure.RTC_Minutes, RTC_TimeStructure.RTC_Seconds);printf("%d-%d-%d\n\r", \RTC_DateStructure.RTC_Year, RTC_DateStructure.RTC_Month, RTC_DateStructure.RTC_Date);
}
int BcdToDecimal(int bcd) 
{int decimal = 0;int temp = 1;int number = 0;if( bcd >= 0x0A ) // 如果大于或等于10{while(bcd > 0) {number = bcd % 16;decimal += number * temp;temp *= 10;bcd /= 16;}return decimal;}return bcd;}
int main(void)
{board_init();uart1_init(115200U);printf("RTC Init Start.....\r\n");RTC_ClockInit(); // RTC 初始化printf("RTC Init Successful!!\r\n");while(1){//获取RTC时间并通过串口输出RtcShowTime();  delay_ms(1000);}}
#相关实验现象

     

                                        欢迎指正,希望对你,有所帮助!!!

‍​‍​‍​​​‍⁠‍​​​⁠​​​‌​​⁠​​⁠‍​‬​​‍‬​‬‍​‍​​​‬⁠‌​⁠【立创·天空星STM32F407VET6】入门手册 - 飞书云文档 (feishu.cn)

相关文章:

STMF4学习笔记RTC(天空星)

前言:本篇笔记参考嘉立创文档,连接放在最后 #RTC相关概念定义 Real-Time Clock 缩写 RTC 翻译 实时时钟,是单片机片内外设的一种,作用于提供准确的时间还有日期,这个外设有独立的电源,当单片机停止供电…...

vue数组变化的侦测***

数组变化的侦测 变更方法 vue能够侦听响应式数组的变更方法,并在他们被调用时触发相关更新。这些变更方法包括: push()pop()shift()unshift()splice()sort()reverse() 替换一个数组 变更方法,顾名思义,就是会对调用他们的原数组进…...

k8s-第十节-Ingress

Ingress 介绍 Ingress 为外部访问集群提供了一个 统一 入口,避免了对外暴露集群端口;功能类似 Nginx,可以根据域名、路径把请求转发到不同的 Service。可以配置 https 跟 LoadBalancer 有什么区别? LoadBalancer 需要对外暴露…...

webrtc gcc详解

webrtc的gcc算法(Google Congestion Control),貌似国内很多文章都没有细讲,原理是怎么样的,具体怎么进行计算的。这里详解一下gcc。 gcc算法,主要涉及到: 拥塞控制的关键信息和公式 卡曼滤波算法 gcc如何使用卡曼滤…...

Linux多进程和多线程(七)进程间通信-信号量

进程间通信之信号量 资源竞争 多个进程竞争同一资源时,会发生资源竞争。 资源竞争会导致进程的执行出现不可预测的结果。 临界资源 不允许同时有多个进程访问的资源, 包括硬件资源 (CPU、内存、存储器以及其他外 围设备) 与软件资源(共享代码段、共享数据结构) …...

【项目日记(一)】梦幻笔耕-数据层实现

❣博主主页: 33的博客❣ ▶️文章专栏分类:项目日记◀️ 🚚我的代码仓库: 33的代码仓库🚚 🫵🫵🫵关注我带你了解更多项目内容 目录 1.前言2.后端模块3数据库设计4.mapper实现4.1UserInfoMapper4.2BlogMapper 5.总结 1.…...

ElementUI的中国省市区级联数据插件element-china-area-data

安装 npm install element-china-area-data -S import 使用 import {provinceAndCityData,pcTextArr,regionData,pcaTextArr,codeToText, } from "element-china-area-data"; provinceAndCityData省市二级联动数据,汉字+coderegionData省市区三级联动数据pcTextAr…...

Kotlin算法:把一个整数向上取值为最接近的2的幂指数值

Kotlin算法&#xff1a;把一个整数向上取值为最接近的2的幂指数值 import kotlin.math.ln import kotlin.math.powfun main(args: Array<String>) {val number intArrayOf(2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18)number.forEach {println("$…...

简单且循序渐进地查找软件中Bug的实用方法

“Bug”这个词常常让许多开发者感到头疼。即使是经验丰富、技术娴熟的开发人员在开发过程中也难以避免遭遇到 Bug。 软件中的故障会让程序员感到挫败。我相信在你的软件开发生涯中&#xff0c;也曾遇到过一些难以排查的问题。软件中的错误可能会导致项目无法按时交付。因此&…...

基于springboot+vue+uniapp的高校宿舍信息管理系统小程序

开发语言&#xff1a;Java框架&#xff1a;springbootuniappJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#…...

(完整音频)DockerHub、OpenAI、GitCode,脱钩时代,我们该如何自处?

本期主播 朱峰&#xff1a;「津津乐道播客网络」创始人&#xff0c;产品及技术专家。&#xff08;微博&#xff1a;zhufengme&#xff09;高春辉&#xff1a;「科技乱炖」主播。“中国互联网站长第一人”&#xff0c;科技、互联网领域的连续创业者。&#xff08;微博&#xff1…...

macos 10.15系统下载包,macOS Catalina for mac

macOS Catalina 让你喜欢的种种 Mac 体验都更进一步。你可以领略音乐、播客这两款全新 Mac app 的表演&#xff1b;在 Mac 上畅享各款自己心爱的 iPad app&#xff1b;拿起 iPad 和 Apple Pencil&#xff0c;拓展工作空间&#xff0c;释放创意灵感&#xff1b;再打开那些平时常…...

uni.showShareMenu({}) 和 uni.showShareImageMenu({}) 的区别

ChatGPT uni.showShareMenu({}) 和 uni.showShareImageMenu({}) 是 Uni-app 中两个不同的 API&#xff0c;它们的作用和用法有所不同&#xff1a; uni.showShareMenu({}) 作用&#xff1a;用于显示当前页面的分享菜单&#xff0c;通常显示在页面的右上角&#xff08;类似于微…...

Spring Boot logback 日志文件配置

引入依赖 <dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.24</version></dependency>logback-spring.xml 配置 <?xml version"1.0" encoding"UTF-8&quo…...

240705_昇思学习打卡-Day17-基于 MindSpore 实现 BERT 对话情绪识别

240705_昇思学习打卡-Day17-基于 MindSpore 实现 BERT对话情绪识别 近期确实太忙&#xff0c;此处仅作简单记录&#xff1a; 模型简介 BERT全称是来自变换器的双向编码器表征量&#xff08;Bidirectional Encoder Representations from Transformers&#xff09;&#xff0c…...

图像处理调试软件推荐

对于图像处理的调试&#xff0c;使用具有图形用户界面&#xff08;GUI&#xff09;且支持实时调整和预览的图像处理软件&#xff0c;可以大大提高工作效率。以下是几款常用且功能强大的图像处理调试软件推荐&#xff1a; ImageJ/FijiMATLABOpenCV with GUI LibrariesNI Vision …...

Mybatis实现RBAC权限模型查询

RBAC权限模型 Role-Based Access Control&#xff0c;中文意思是&#xff1a;基于角色&#xff08;Role&#xff09;的访问控制。这是一种广泛应用于计算机系统和网络安全领域的访问控制模型。 简单来说&#xff0c;就是通过将权限分配给➡角色&#xff0c;再将角色分配给➡用…...

最短路算法——差分约束

差分约束 (1) 求不等式组的可行解 源点&#xff1a;从源点出发&#xff0c;一定可以走到所有的边求可行解步骤&#xff1a; 先将每个不等式 x i ≤ x j c x_i \le x_j c xi​≤xj​c,转化成一条从 s j s_j sj​走到 s i s_i si​&#xff0c;长度为 c k c_k ck​ 的一条边找…...

Log4j日志框架讲解(全面,详细)

目录 Log4j概述 log4j的架构&#xff08;组成&#xff09; Loggers Appenders Layouts 快速入门 依赖 java代码 日志的级别 log4j.properties 自定义Logger 总结&#xff1a; Log4j概述 Log4j是Apache下的一款开源的日志框架&#xff0c;通过在项目中使用 Log4J&…...

LeetCode 35, 242, 994

目录 35. 搜索插入位置题目链接标签思路代码 242. 有效的字母异位词题目链接标签思路代码 994. 腐烂的橘子题目链接标签思路代码 35. 搜索插入位置 题目链接 35. 搜索插入位置 标签 数组 二分查找 思路 本题与 704. 二分查找 十分相似&#xff0c;只不过本题在找不到 tar…...

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…...

大话软工笔记—需求分析概述

需求分析&#xff0c;就是要对需求调研收集到的资料信息逐个地进行拆分、研究&#xff0c;从大量的不确定“需求”中确定出哪些需求最终要转换为确定的“功能需求”。 需求分析的作用非常重要&#xff0c;后续设计的依据主要来自于需求分析的成果&#xff0c;包括: 项目的目的…...

逻辑回归:给不确定性划界的分类大师

想象你是一名医生。面对患者的检查报告&#xff08;肿瘤大小、血液指标&#xff09;&#xff0c;你需要做出一个**决定性判断**&#xff1a;恶性还是良性&#xff1f;这种“非黑即白”的抉择&#xff0c;正是**逻辑回归&#xff08;Logistic Regression&#xff09;** 的战场&a…...

Redis数据倾斜问题解决

Redis 数据倾斜问题解析与解决方案 什么是 Redis 数据倾斜 Redis 数据倾斜指的是在 Redis 集群中&#xff0c;部分节点存储的数据量或访问量远高于其他节点&#xff0c;导致这些节点负载过高&#xff0c;影响整体性能。 数据倾斜的主要表现 部分节点内存使用率远高于其他节…...

AspectJ 在 Android 中的完整使用指南

一、环境配置&#xff08;Gradle 7.0 适配&#xff09; 1. 项目级 build.gradle // 注意&#xff1a;沪江插件已停更&#xff0c;推荐官方兼容方案 buildscript {dependencies {classpath org.aspectj:aspectjtools:1.9.9.1 // AspectJ 工具} } 2. 模块级 build.gradle plu…...

使用Matplotlib创建炫酷的3D散点图:数据可视化的新维度

文章目录 基础实现代码代码解析进阶技巧1. 自定义点的大小和颜色2. 添加图例和样式美化3. 真实数据应用示例实用技巧与注意事项完整示例(带样式)应用场景在数据科学和可视化领域,三维图形能为我们提供更丰富的数据洞察。本文将手把手教你如何使用Python的Matplotlib库创建引…...

MySQL 知识小结(一)

一、my.cnf配置详解 我们知道安装MySQL有两种方式来安装咱们的MySQL数据库&#xff0c;分别是二进制安装编译数据库或者使用三方yum来进行安装,第三方yum的安装相对于二进制压缩包的安装更快捷&#xff0c;但是文件存放起来数据比较冗余&#xff0c;用二进制能够更好管理咱们M…...

Ubuntu Cursor升级成v1.0

0. 当前版本低 使用当前 Cursor v0.50时 GitHub Copilot Chat 打不开&#xff0c;快捷键也不好用&#xff0c;当看到 Cursor 升级后&#xff0c;还是蛮高兴的 1. 下载 Cursor 下载地址&#xff1a;https://www.cursor.com/cn/downloads 点击下载 Linux (x64) &#xff0c;…...

MFE(微前端) Module Federation:Webpack.config.js文件中每个属性的含义解释

以Module Federation 插件详为例&#xff0c;Webpack.config.js它可能的配置和含义如下&#xff1a; 前言 Module Federation 的Webpack.config.js核心配置包括&#xff1a; name filename&#xff08;定义应用标识&#xff09; remotes&#xff08;引用远程模块&#xff0…...

自然语言处理——文本分类

文本分类 传统机器学习方法文本表示向量空间模型 特征选择文档频率互信息信息增益&#xff08;IG&#xff09; 分类器设计贝叶斯理论&#xff1a;线性判别函数 文本分类性能评估P-R曲线ROC曲线 将文本文档或句子分类为预定义的类或类别&#xff0c; 有单标签多类别文本分类和多…...