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

STM32 RTC实时时钟

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

RTC实时时钟
BKP可以在VBAT维持供电时,完成主电源掉电时,保存少量数据的任务。备份寄存器和VBAT引脚同时存在,更多是为了服务RTC的。

目前,Linux、Windows、安卓这些系统,底层的计时系统都是使用的Unix时间戳,Unix Timestamp,
只计秒的好处:简化硬件电路,不用考虑年月日寄存器、仅为
时间间隔计算很方便
存储方便
但是比较占用软件资源,需要转换位年月日
2038年32的计时系统可能会出问题。

UTC的闰秒机制可能导致一分钟出现61秒的情况,

BKP会读写相关寄存器就行,RTC需要重点掌握,TAMPER引脚是一个安全保障设计,防拆功能,如果BKP里存储了一些敏感数据,可以使用TAMPER的侵入检测功能,先加一个默认的上拉和下拉电阻,到设备外壳的防拆开关和触点。在TAMPER产生下降沿或上升沿,STM32检测到侵入时间了,BKP数据自动清空并申请中断,在中断里,还可以继续保护设备,比如清楚其他存储器数据,然后设备锁死。

后备区域不只有BKP,还有RTC的相关电路,STM32后备区域特点,当VDD主电源掉电时,后备区域可由VBAT备用电池供电。
BKP主要由数据寄存器(主要部分用来存储数据,每个数据16位,1个数据寄存器存储两个字节)、状态寄存器、控制寄存器和RTC时钟校准寄存器(当输出校准时钟时,再配合校准寄存器,可以对RTC的误差进行校准(如何实现的?))
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
这些函数是用于配置TAMPER侵入检测功能的
BKP_TamperPinLevelConfig ,可以配置TAMPER引脚的有效电平,
BKP_TamperPinCmd ,就是是否开启侵入检测功能,
那就先配置TAMPER有效电平,再使能侵入检测功能,
BKP_ITConfig 中断配置
BKP_RTCOutputConfig 时钟输出功能的配置 可以选择在RTC引脚输出时钟信号,输出RTC校准时钟,RTC闹钟脉冲或者秒脉冲
BKP_SetRTCCalibrationValue 其实就是写入RTC校准寄存器
这些是BKP附加的一些小功能,了解即可
下面才是重点:
BKP_WriteBackupRegister 写备份寄存器
BKP_ReadBackupRegister 读备份寄存器
下面四个是老朋友,不用解释。

PWR_BackupAccessCmd 备份寄存器访问使能,就是设置PWR_CR寄存器里的DBP位,

代码:1.开启PWR和BKP时钟,外设时钟控制,开启PWR时钟,读取BKP

LSE需要手动开启,不然用不了,

进入睡眠的目的是:如果STM32一直没有收到数据,那这个主循环也会一直查询标志位,,这是无意义的耗电操作,不如让它睡眠

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 如何看待IBM中国研发部裁员!
  • 惩罚矩阵?动态规划是如何爱上矩阵的
  • rman 备份尽量使用 backup database plus archivelog
  • 数据库进阶:2.索引
  • 【 html+css 绚丽Loading 】 000045 太极旋流轮
  • 【SpringCloud】 实现负载均衡
  • 【C++ 09】继承
  • Path系统环境变量和CLASSPATH环境变量
  • 存储课程学习笔记2_借助内核插入一个文件系统,用文件夹下测试文件系统(mount文件系统到目录下是入口)
  • yolov5-6.2 在 rk3399pro 上的移植
  • 力扣面试150 三角形最小路径和 DFS 记忆化搜索 DP 滚动数组优化DP
  • 一次性了解Neo4j图形数据库
  • 外贸人提高潜在客户EDM电子邮件营销参与度的一些建议
  • C++ 类型的转换
  • vivado 时间汇总报告
  • -------------------- 第二讲-------- 第一节------在此给出链表的基本操作
  • 【跃迁之路】【519天】程序员高效学习方法论探索系列(实验阶段276-2018.07.09)...
  • exif信息对照
  • MaxCompute访问TableStore(OTS) 数据
  • Python 基础起步 (十) 什么叫函数?
  • 笨办法学C 练习34:动态数组
  • 程序员该如何有效的找工作?
  • 从零开始在ubuntu上搭建node开发环境
  • 海量大数据大屏分析展示一步到位:DataWorks数据服务+MaxCompute Lightning对接DataV最佳实践...
  • 说说动画卡顿的解决方案
  • 我看到的前端
  • 小程序01:wepy框架整合iview webapp UI
  • 在Docker Swarm上部署Apache Storm:第1部分
  • 如何通过报表单元格右键控制报表跳转到不同链接地址 ...
  • ​queue --- 一个同步的队列类​
  • #Datawhale AI夏令营第4期#AIGC文生图方向复盘
  • (~_~)
  • (01)ORB-SLAM2源码无死角解析-(56) 闭环线程→计算Sim3:理论推导(1)求解s,t
  • (leetcode学习)236. 二叉树的最近公共祖先
  • (Matlab)使用竞争神经网络实现数据聚类
  • (react踩过的坑)Antd Select(设置了labelInValue)在FormItem中initialValue的问题
  • (独孤九剑)--文件系统
  • (十八)三元表达式和列表解析
  • (十六)Flask之蓝图
  • (五)activiti-modeler 编辑器初步优化
  • (五)关系数据库标准语言SQL
  • (原創) 博客園正式支援VHDL語法著色功能 (SOC) (VHDL)
  • (转)Unity3DUnity3D在android下调试
  • ***通过什么方式***网吧
  • ./configure,make,make install的作用(转)
  • .NET 4.0中使用内存映射文件实现进程通讯
  • .NET Core跨平台微服务学习资源
  • .Net8 Blazor 尝鲜
  • .NetCore+vue3上传图片 Multipart body length limit 16384 exceeded.
  • .Net实现SCrypt Hash加密
  • .NET中的Exception处理(C#)
  • @Mapper作用
  • [AIGC] MySQL存储引擎详解
  • [Algorithm][动态规划][子序列问题][最长递增子序列][摆动序列]详细讲解
  • [C#]winform部署PaddleOCRV3推理模型