当前位置: 首页 > 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…...

MySQL 隔离级别:脏读、幻读及不可重复读的原理与示例

一、MySQL 隔离级别 MySQL 提供了四种隔离级别,用于控制事务之间的并发访问以及数据的可见性,不同隔离级别对脏读、幻读、不可重复读这几种并发数据问题有着不同的处理方式,具体如下: 隔离级别脏读不可重复读幻读性能特点及锁机制读未提交(READ UNCOMMITTED)允许出现允许…...

Debian系统简介

目录 Debian系统介绍 Debian版本介绍 Debian软件源介绍 软件包管理工具dpkg dpkg核心指令详解 安装软件包 卸载软件包 查询软件包状态 验证软件包完整性 手动处理依赖关系 dpkg vs apt Debian系统介绍 Debian 和 Ubuntu 都是基于 Debian内核 的 Linux 发行版&#xff…...

安宝特方案丨XRSOP人员作业标准化管理平台:AR智慧点检验收套件

在选煤厂、化工厂、钢铁厂等过程生产型企业&#xff0c;其生产设备的运行效率和非计划停机对工业制造效益有较大影响。 随着企业自动化和智能化建设的推进&#xff0c;需提前预防假检、错检、漏检&#xff0c;推动智慧生产运维系统数据的流动和现场赋能应用。同时&#xff0c;…...

五年级数学知识边界总结思考-下册

目录 一、背景二、过程1.观察物体小学五年级下册“观察物体”知识点详解&#xff1a;由来、作用与意义**一、知识点核心内容****二、知识点的由来&#xff1a;从生活实践到数学抽象****三、知识的作用&#xff1a;解决实际问题的工具****四、学习的意义&#xff1a;培养核心素养…...

将对透视变换后的图像使用Otsu进行阈值化,来分离黑色和白色像素。这句话中的Otsu是什么意思?

Otsu 是一种自动阈值化方法&#xff0c;用于将图像分割为前景和背景。它通过最小化图像的类内方差或等价地最大化类间方差来选择最佳阈值。这种方法特别适用于图像的二值化处理&#xff0c;能够自动确定一个阈值&#xff0c;将图像中的像素分为黑色和白色两类。 Otsu 方法的原…...

【Java_EE】Spring MVC

目录 Spring Web MVC ​编辑注解 RestController RequestMapping RequestParam RequestParam RequestBody PathVariable RequestPart 参数传递 注意事项 ​编辑参数重命名 RequestParam ​编辑​编辑传递集合 RequestParam 传递JSON数据 ​编辑RequestBody ​…...

MySQL用户和授权

开放MySQL白名单 可以通过iptables-save命令确认对应客户端ip是否可以访问MySQL服务&#xff1a; test: # iptables-save | grep 3306 -A mp_srv_whitelist -s 172.16.14.102/32 -p tcp -m tcp --dport 3306 -j ACCEPT -A mp_srv_whitelist -s 172.16.4.16/32 -p tcp -m tcp -…...

Android第十三次面试总结(四大 组件基础)

Activity生命周期和四大启动模式详解 一、Activity 生命周期 Activity 的生命周期由一系列回调方法组成&#xff0c;用于管理其创建、可见性、焦点和销毁过程。以下是核心方法及其调用时机&#xff1a; ​onCreate()​​ ​调用时机​&#xff1a;Activity 首次创建时调用。​…...

sipsak:SIP瑞士军刀!全参数详细教程!Kali Linux教程!

简介 sipsak 是一个面向会话初始协议 (SIP) 应用程序开发人员和管理员的小型命令行工具。它可以用于对 SIP 应用程序和设备进行一些简单的测试。 sipsak 是一款 SIP 压力和诊断实用程序。它通过 sip-uri 向服务器发送 SIP 请求&#xff0c;并检查收到的响应。它以以下模式之一…...

LeetCode - 199. 二叉树的右视图

题目 199. 二叉树的右视图 - 力扣&#xff08;LeetCode&#xff09; 思路 右视图是指从树的右侧看&#xff0c;对于每一层&#xff0c;只能看到该层最右边的节点。实现思路是&#xff1a; 使用深度优先搜索(DFS)按照"根-右-左"的顺序遍历树记录每个节点的深度对于…...