物联网ARM开发-STM32之RTC浅谈

RTC

一.RTC简单介绍

  RTC好比我们用来记录时间的一个钟表,他里面有年月日,还可以记录星期,小时,分钟等。是Real Time Clock的缩写,译为实时时钟,本质上是一个独立的定时器。

1. 1 与通用定时器的区别

  1. 可以在后备电源下工作,主电源掉电以后,单片机内部电源还会继续给RTC提供电源,保持其正常运行。
  2. 计数器符合年、月、日、星期、时、分、秒、等日期的时间技术规则,例如它可以区分是不是闰年还有大小月份。
  3. 不受复位信号影响,例如主电源上电过程会有一个复位效果,但是RTC不会受其影响。
  4. 低功耗计时,通常电流是uA。最典型的就是我们电脑主板内部的RTC。

1.2 常见的独立RTC芯片

  1. PCF8563,NXP公司的,I2C接口
  2. DS1302,MAX公司的,两线串行接口
  3. DS3231, MAX公司的,I2C接口,内置高精度时钟信号源,常温范围内5ppm(百万分之一)精度,普通柱状晶体是20ppm,且容易受温度影响。

1.3 RTC在实际项目中的应用

  1. 为用户提供时间,日期
  2. 实现时间记录功能,比如安全监控项目
  3. 实现按时间要求的相关任务,比如按约定时间控制相关水闸等
  4. 实现周期性的唤醒,执行相关的周期性任务

2. STM32F407上的RTC

2.1 主要特点

  先列一张RTC的部分结构框图,再结合框图进行分析。
在这里插入图片描述

图1 RTC的部分结构框图

  1. 是一个独立的BCD(二进制转换成十进制)定时器,例如今天是30号,读出来的数据是0x30,但是转成16进制就是0x1E。
  2. 此外还可以提供亚秒,系统自动将月份补偿为28、29(闰年)、30和31天
  3. 软件可编程夏令时补偿(高纬度地方,夏天天亮的早,人为的加快一个小时)
  4. 两个具有中断功能的可编程闹钟,可以通过任意日历字段的组合驱动闹钟
  5. 自动唤醒单元,可周期性地生成标志以触发自动唤醒中断
  6. 参考时钟检测:可使用更加精确的第二时钟源来提高精度
  7. 利用亚秒级移位特性与外部时钟实现精确同步
  8. 用于事件保存的时间戳功能,指的是单片机上的一个IO口检测到电平的变化的时候,会将这个变化时间记录
  9. 入侵检测:2个带可配置过滤器和内部上拉的入侵事件,出于对产品数据的保密,敏感数据可以保存在ram里面,由备用电源供电,给这个产品放一个壳,一旦拆开这个壳,就会被检测到,然后自动清除ram数据。
    10.可屏蔽中断或事件:闹钟A、闹钟B、唤醒中断、时间戳、入侵检测
  10. 数字校准电路:粗调(5ppm),细调(0.95ppm)
  11. 20个备份寄存器(80字节)。
  12. 复用功能输出:1.512Hz或1Hz时钟输出(LSE频率为32.768KHz),2. RTC_ALARM(闹钟A、闹钟B或唤醒)
  13. 复用功能输入:1.RTC_TS:时间戳事件检测,2.RTC_TAMP1:TAMPER1事件检测,3.RTC_TAMP2:TAMPER2事件检测,4.RTC_REFIN:参考时钟源输入

2.2后备电源

   纽扣电池经过一个二极管,防止主电源给电池充电,同时还要经过一个二极管,防止电池给整个单片机供电。示意图如下:
在这里插入图片描述

图2 RTC后备电源示意图

2.3 时钟和预分频器

  看图可以发现有两个额外的脚PC14,PC15,这两个脚如果先用我们的RTC,最好接一个片外的石英晶体(32.768KHz),为什么是32.768,因为它是2的15次方,通过分配可以精确到1Hz。,在看,到RTC有三条路,一条是32KHz,不好的地方是误差大。第二个是正道,还一个是歪道(系统时钟分配过来的)。示意图如下:
在这里插入图片描述

图3 时钟示意图
在这里插入图片描述
图4 补充解释图

2.4 实时时钟和日历

  1. RTC日历时间和日期寄存器可通过与PCLK1(APB1时钟)同步的影子寄存器来访问,APB时钟频率必须至少为RTC时钟频率的7倍
  2. 时间和日期寄存器可以直接访问
  3. RTC_SSR对应与亚秒
  4. RTC_TR对应于时间
  5. RTC_DR对应于日期
  6. 每隔两个RTCCLK周期,便将当前日历值复制到影子寄存器里面去

2.5可编程闹钟

  1. 可通过将RTC_CR寄存器中的ALRAE和ALRBE位置1来使能可编程闹钟功能
  2. 如果日历亚秒、秒、分钟、小时、日期或日分别与闹钟寄存器中编程的值相匹配,则ALRAF,ALRBF标志就会变成1
  3. 闹钟A和闹钟B在使能后,可连接到RTC_ALARM输出,且输出极性可设
    差不多就到这里来了。

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

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

相关文章

基于 SpringBoot 和 Vue.js 的权限管理系统部署教程

大家后,我是 jonssonyan 在上一篇文章我介绍了我的新项目——基于 SpringBoot 和 Vue.js 的权限管理系统,本文主要介绍该系统的部署 部署教程 这里使用 Docker 进行部署,Docker 基于容器技术,它可以占用更少的资源,…

PyTorch 2.2 中文官方教程(七)

使用 torchtext 库进行文本分类 原文:pytorch.org/tutorials/beginner/text_sentiment_ngrams_tutorial.html 译者:飞龙 协议:CC BY-NC-SA 4.0 注意 点击这里下载完整示例代码 在本教程中,我们将展示如何使用 torchtext 库构建文…

【机器学习与自然语言处理】预训练 Pre-Training 各种经典方法的概念汇总

【机器学习与自然语言处理】预训练 Pre-Training 各种经典方法的概念汇总 前言请看此正文预训练 Pre-Training无监督学习 unsupervised learning概念:标签PCA 主成分分析(Principal Component Analysis)降维算法LSA 潜在语义分析(…

《动手学深度学习(PyTorch版)》笔记7.2

注:书中对代码的讲解并不详细,本文对很多细节做了详细注释。另外,书上的源代码是在Jupyter Notebook上运行的,较为分散,本文将代码集中起来,并加以完善,全部用vscode在python 3.9.18下测试通过&…

sql求解连续两个以上的空座位

Q:查找电影院所有连续可用的座位。 返回按 seat_id 升序排序 的结果表。 测试用例的生成使得两个以上的座位连续可用。 结果表格式如下所示。 A:我们首先找出所有的空座位:1,3,4,5 按照seat_id排序(上面已…

zer0pts-2020-memo:由文件偏移处理不正确--引发的堆溢出

启动脚本 #!/bin/sh qemu-system-x86_64 \-m 256M \-kernel ./bzImage \-initrd ./rootfs.cpio \-append "root/dev/ram rw consolettyS0 oopspanic panic1 kaslr quiet" \-cpu kvm64,smep,smap \-monitor /dev/null \-nographic -enable-kvm/ # dmesg | grep page …

jsp课程管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 JSP 课程管理系统是一套完善的java web信息管理系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql5.0&…

Django(十)

1. Ajax请求 浏览器向网站发送请求时:URL 和 表单的形式提交。 GETPOST 特点:页面刷新。 除此之外,也可以基于Ajax向后台发送请求(偷偷的发送请求)。 依赖jQuery编写ajax代码 $.ajax({url:"发送的地址"…

[MFC] MFC消息机制的补充

之前写了[MFC] 消息映射机制的使用和原理浅析,还有些需要补充的,都记在这里。 MFC 消息的分类 MFC消息分为系统消息和自定义消息。 图片来源:C语言/C教程 大型源码案例分析:MFC消息系统的代码解析 易道云编程 系统消息分为窗口…

个人IP塑造与短视频带货,人人都是吸金的网红博主

一、教程描述 网红带货,就是网络红人通过推荐和分享,间接销售产品的一种方式。网红带货并不是直接带货,而是需要打造自己,用时下热门的话讲叫塑造IP,一般通过旅行、工作、日常服装搭配等这些行为,输出自己…

龙芯开启ssh服务——使用Putty连接

本文采用龙芯3A6000处理器,Loongnix操作系统。 为了能使用其他电脑远程操控龙芯电脑,需要打开loongnix的ssh服务,并在其他电脑里使用putty连接loongnix。 1 修改ssh配置文件 命令行输入: sudo vim /etc/ssh/sshd_config按下i插…

Unity3d Shader篇(六)— BlinnPhong高光反射着色器

文章目录 前言一、BlinnPhong高光反射着色器是什么?1. BlinnPhong高光反射着色器的工作原理2. BlinnPhong高光反射着色器的优缺点优点缺点 3. 公式 二、使用步骤1. Shader 属性定义2. SubShader 设置3. 渲染 Pass4. 定义结构体和顶点着色器函数5. 片元着色器函数 三…

【数据分享】1929-2023年全球站点的逐月平均风速(Shp\Excel\免费获取)

气象数据是在各项研究中都经常使用的数据,气象指标包括气温、风速、降水、能见度等指标,说到气象数据,最详细的气象数据是具体到气象监测站点的数据! 有关气象指标的监测站点数据,之前我们分享过1929-2023年全球气象站…

【精选】java初识多态 子类继承父类

🍬 博主介绍👨‍🎓 博主介绍:大家好,我是 hacker-routing ,很高兴认识大家~ ✨主攻领域:【渗透领域】【应急响应】 【python】 【VulnHub靶场复现】【面试分析】 🎉点赞➕评论➕收藏…

08-Java过滤器模式 ( Filter Pattern )

Java过滤器模式 实现范例 过滤器模式(Filter Pattern)或允许开发人员使用不同的标准来过滤一组对象,通过逻辑运算以解耦的方式把它们连接起来 过滤器模式(Filter Pattern) 又称 标准模式(Criteria Pattern…

C++:二叉搜索树模拟实现(KV模型)

C:二叉搜索树模拟实现(KV模型) 前言模拟实现KV模型1. 节点封装2、前置工作(默认构造、拷贝构造、赋值重载、析构函数等)2. 数据插入(递归和非递归版本)3、数据删除(递归和非递归版本…

校园墙表白墙系统uniapp微信小程序

配置文件 (自动编号、配置参数名称、配置参数值); 前端开发:vue 语言:javapythonnodejsphp均支持 运行软件:idea/eclipse/vscode/pycharm/wamp均支持 框架支持:Ssm/django/flask/thinkphp/springboot/springcloud均支持 数据库 mysql 数据库工具&#x…

【C++】C++的简要介绍

简单不先于复杂,而是在复杂之后。 文章目录 1. 什么是C2. C的发展史3. C的重要性3.1 语言的使用广泛度3.2 在工作领域3.3 在校招领域3.3.1 岗位需求3.3.2 笔试题 3.3.3 面试题 4. 如何学习C4.1 别人怎么学? 1. 什么是C C语言是结构化和模块化的语言&…

94.网游逆向分析与插件开发-游戏窗口化助手-地图数据获取的逆向分析与C++代码还原

内容参考于:易道云信息技术研究院VIP课 上一个内容:升级经验数据获取的逆向分析 码云地址(游戏窗口化助手 分支):https://gitee.com/dye_your_fingers/sro_-ex.git 码云版本号:c4351a5b346d8953a1a8e3ec…

文件上传-Webshell

Webshell简介 webshell就是以aspphpjsp或者cgi等网页文件形式存在的一种命令执行环境,也可以将其称做为一种网页木马后门。 攻击者可通过这种网页后门获得网站服务器操作权限,控制网站服务器以进行上传下载文件、查看数据库、执行命令等… 什么是木马 …