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

STM32 RTC实验

RTC时钟简介

STM32F103的实时时钟(RTC)是一个独立的定时器。
STM32的RTC模块拥有一组连续计数的计数器,在相对应的软件配置下,可提供时钟日历的功能。
修改计数器的值可以重新设置系统的当前时间和日期。

RTC模块和时钟配置系统(RCC_BDCR寄存器)是在后备区域,即在系统复位或从待机模式唤醒后RTC的设置和时间维持不变,只要后备区域供电正常,那么RTC将可以一直运行。

但是在系统复位后,会自动禁止访问后备寄存器和RTC,以防止对后备区域(BKP)的意外写操作。所以在设置时间之前,先要取消备份区域(BKP)的写保护。

实时时钟(Real Time Clock,RTC),本质是一个计数器,计数频率常为秒专门用来记录时间。

在这里插入图片描述
普通定时器不能拿来作时钟,因为普通定时器无法掉电运行。

RTC特性

  1. 能提供时间(秒钟数)
  2. 能在MCU掉电后运行
  3. 低功耗

常见的RTC方案

在这里插入图片描述
芯片上自带有RTC

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

  1. 一般都需要设计RTC外围电路。
  2. 一般都可以给RTC设置独立的电源。
  3. 多数RTC的寄存器采用BCD码存储时间信息。(F1使用16进制)

在这里插入图片描述

  1. RTC预分频器
    在这里插入图片描述
    RTC_PRL预分频值=32767,也就是32768分频,得到频率1Hz。
  2. 32位可编程计数器
  3. 待机唤醒
  4. RTC控制寄存器与APB1接口

RTC工作在后备区域,VDD掉电仍正常。
在这里插入图片描述

后备寄存器和RTC寄存器特性

  1. 部分寄存器写保护:RTC_PRL、RTC_ALR、RTC_CNT和RTC_DIV寄存器不会被系统复位。
  2. 数据存储功能:RTC和后备寄存器不会被系统或电源复位源复位;当从待机模式唤醒时,也不会被复位。后备寄存器可用于保存掉电时的数据。
  3. RTC和后备寄存器通过一个开关供电,在VDD有效时该开关选择VDD供电,否则由VBAT引脚供电。在VBAT供电时仍可继续工作。
  4. 2个独立复位:APB1接口由系统复位;RTC核心只能由后备域复位。

在这里插入图片描述

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

RTC基本驱动步骤(F1)

  1. 使能电源时钟并使能后备域访问:__HAL_RCC_PWR_CLK_ENABLE 使能电源时钟
    __HAL_RCC_BKP_CLK_ENABLE 使能电源时钟
    HAL_PWR_EnbaleBkUpAccess 使能备份访问
  2. 开启LSE/选择RTC时钟源/使能RTC时钟
    在这里插入图片描述
  3. 初始化RTC,设置分频值以及工作参数。
    在这里插入图片描述
  4. 设置RTC的日期和时间:操作寄存器方式实现rtc_set_time
  5. 获取RTC当前日期和时间:rtc_get_time

F1的RTC没有日历寄存器,使用时只存储总秒数,不利于直接设置和显示,所以还需要编写函数把时间变成我们日常的日历时间。

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

编程实战

驱动RTC,使用串口打印当前时间。

相关文章:

STM32 RTC实验

RTC时钟简介 STM32F103的实时时钟(RTC)是一个独立的定时器。 STM32的RTC模块拥有一组连续计数的计数器,在相对应的软件配置下,可提供时钟日历的功能。 修改计数器的值可以重新设置系统的当前时间和日期。 RTC模块和时钟配置系统…...

C#设计打开文件

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System...

mysql指令行登录如何添加mysql.sock的配置?(亲测)

在 MySQL 的命令行登录中,你可以使用 --socket 参数来指定 MySQL 的 Unix 套接字文件(mysql.sock)的位置。以下是使用 --socket 参数进行 MySQL 命令行登录的示例: mysql --socket/path/to/mysql.sock -u username -p 将 /path…...

Git 设置和清除用户名和邮箱

作为一款十分流行的版本控制工具,Git 得到了越来越多的开发者的喜爱。然而,当使用 Git 上传代码的时候,很多开发者都会遇到一个问题,那就是如果在提交代码时错误地设置了用户名和邮箱,那么这些信息就会被永久地记录在 …...

【系统设计系列】 回顾可扩展性

系统设计系列初衷 System Design Primer: 英文文档 GitHub - donnemartin/system-design-primer: Learn how to design large-scale systems. Prep for the system design interview. Includes Anki flashcards. 中文版: https://github.com/donnemart…...

科兴未来 |轨道交通专业赛 第十二届中国创新创业大赛

一、大赛主题 产业赋能 创享未来 二、参赛方向 1.自主可控的关键核心技术。面向“一带一路”国际市场、国内区域/市域轨道交通一体化需求,征集不同轨制、供电制式、通信信号、交通方式、载运工具等跨标准体系的适配关键应用技术,包括但不限于:列车自动…...

leetcode 42. 接雨水

2023.8.29 本题可以用双指针做&#xff0c;求出每一列能盛的雨水&#xff0c;再相加即可。不过暴力法会超时&#xff0c;需要优化。 双指针&#xff08;暴力&#xff09;&#xff1a; class Solution { public:int trap(vector<int>& height) {int ans 0;for(int …...

【Lychee图床】本地电脑搭建私人图床,公网远程访问

文章目录 1.前言2. Lychee网站搭建2.1. Lychee下载和安装2.2 Lychee网页测试2.3 cpolar的安装和注册 3.本地网页发布3.1 Cpolar云端设置3.2 Cpolar本地设置 4.公网访问测试5.结语 1.前言 图床作为图片集中存放的服务网站&#xff0c;可以看做是云存储的一部分&#xff0c;既可…...

【MySQL系列】-ORDER BY……HAVING详解及limit

&#x1f490; &#x1f338; &#x1f337; &#x1f340; &#x1f339; &#x1f33b; &#x1f33a; &#x1f341; &#x1f343; &#x1f342; &#x1f33f; &#x1f344;&#x1f35d; &#x1f35b; &#x1f364; &#x1f4c3;个人主页 &#xff1a;阿然成长日记 …...

浅析Keil MDK下串行Flash的下载算法设计

浅析Keil MDK下串行Flash的下载算法设计-电子发烧友网 今天给大家介绍的是 Keil MDK 工具下 i.MXRT 的串行 NOR Flash 下载算法设计。 在 i.MXRT 硬件那些事系列之《在串行 NOR Flash XIP 调试原理》一文中&#xff0c;痞子衡简单提了一下串行 NOR Flash 下载算法的概念&…...

springboot自动装配原理,手写一个starter。

文章目录 springboot自动装配原理手写starter手写starter总结&#xff1a; springboot自动装配原理 口述&#xff1a; springboot自动装配的话它其实就是只需要我们添加一个starter起步依赖&#xff0c;它就能完成这个依赖组件相关Bean的自动注入&#xff0c;其实就是自动的将…...

革命性的电子元件:RAD继电器 | 百能云芯

在现代电子和通信系统中&#xff0c;RAD继电器是一种关键的电子元件&#xff0c;它在各种应用中发挥着重要作用。RAD继电器&#xff08;Reed-relay Actuated Device&#xff09;是一种基于磁性原理的电子开关&#xff0c;其特点是极其高速、可靠、低功耗和长寿命。下面云芯将为…...

文献阅读:Deep Learning Enabled Semantic Communication Systems

目录 论文简介关于文章内容的总结引申出不理解的问题 论文简介 作者 Huiqiang Xie Zhijin Qin Geoffrey Ye Li Biing-Hwang Juang 发表期刊or会议 《IEEE TRANSACTIONS ON SIGNAL PROCESSING》 发表时间 2021.4 这篇论文由《Deep Learning based Semantic Communications: A…...

巨人互动|游戏出海游戏出海效果怎样?

游戏出海是指将原本面向国内市场的游戏产品进行调整和优化&#xff0c;以适应海外市场的需求&#xff0c;并进行推广和销售。下面小编讲讲关于游戏出海对于游戏效果的影响的一些讨论点。 1、市场扩大 通过游戏出海&#xff0c;可以将游戏产品的目标受众从国内扩展到全球范围内…...

二、GoLang输出HelloWorld、变量定义、数据类型的转换

一、输入Hello World go语言中&#xff0c;想要输出内容到控制台&#xff0c;package必须是main&#xff0c;包括方法名也必须是main&#xff0c; go语言输出的语法是 fmt 库。 package mainimport "fmt"func main() {// go语言中 输出内容 使用的库是 fmt库fmt.Pr…...

Mars3d图层树//图层管理加载时设置默认折叠的状态

问题&#xff1a;Mars3d图层树//图层管理加载时设置默认折叠的状态。 设置参考&#xff1a; 有个参数 open:false&#xff0c;写在对应的图层配置下&#xff0c;比如某个节点不展示&#xff0c;就对这个节点配置下。 如果全局&#xff0c;可以搜下这个widget内的代码&#xff…...

区块链技术|DApp与传统应用程序的关键区别

在数字时代&#xff0c;应用程序已经成为我们生活的一部分&#xff0c;无论是社交媒体、金融服务还是娱乐媒体&#xff0c;应用程序几乎无处不在。然而&#xff0c;随着区块链技术的崭露头角&#xff0c;一种新型应用程序——去中心化应用程序&#xff08;DApp&#xff09;正在…...

Python 加密解密技巧大揭秘:让你的数据安全无忧

建议食用原文链接效果更佳 Python 加密解密技巧大揭秘&#xff1a;让你的数据安全无忧 今天我们将探讨在 Python 中常见的加密解密算法&#xff0c;并通过代码案例来帮助大家更好地理解它们的实现。 在开始之前&#xff0c;请确保您已经安装了 pycryptodome 这个库。您可以使用…...

C#判断字符是否为utf16编码

unity截取显示微信昵称后&#xff0c;出现异常Error: UTF-16 to UTF-8 conversion failed because the input string is invalid&#xff0c;原因是截取字符串刚好截到了表情后面&#xff0c;解决思路是从截取到的索引向前遍历&#xff0c;找第一个不是utf16编码的字符&#xf…...

centos7上hive3.1.3安装及配置

1、安装背景&#xff1b; hive是基于hadoop的数据仓库软件&#xff0c;部署运行在linux系统之上&#xff0c;安装之前必须保证hadoop环境运行正常&#xff0c;hive本身不是分布式软件&#xff0c;它的分布式主要是借助hadoop实现&#xff0c;存储是hdfs&#xff0c;计算是mapr…...

终极指南:如何在TensorFlow Rust中掌握while_loop循环结构

终极指南&#xff1a;如何在TensorFlow Rust中掌握while_loop循环结构 【免费下载链接】rust Rust language bindings for TensorFlow 项目地址: https://gitcode.com/gh_mirrors/rust/rust TensorFlow Rust是Rust语言与TensorFlow深度学习框架的绑定库&#xff0c;它允…...

NASM高级特性详解:条件汇编、上下文栈和宏重载

NASM高级特性详解&#xff1a;条件汇编、上下文栈和宏重载 【免费下载链接】nasm A cross-platform x86 assembler with an Intel-like syntax 项目地址: https://gitcode.com/gh_mirrors/na/nasm NASM&#xff08;Netwide Assembler&#xff09;是一款跨平台的x86汇编器…...

Pixel Fashion Atelier新手教程:RPG式交互界面操作全图解

Pixel Fashion Atelier新手教程&#xff1a;RPG式交互界面操作全图解 1. 认识像素时装锻造坊 Pixel Fashion Atelier是一款独特的AI图像生成工具&#xff0c;它将传统的AI绘图技术与复古日系RPG游戏界面完美融合。不同于市面上常见的暗色调AI工具&#xff0c;这款应用采用了明…...

中医AI革命:如何用70亿参数模型破解千年诊疗难题

中医AI革命&#xff1a;如何用70亿参数模型破解千年诊疗难题 【免费下载链接】CMLM-ZhongJing 首个中医大语言模型——“仲景”。受古代中医学巨匠张仲景深邃智慧启迪&#xff0c;专为传统中医领域打造的预训练大语言模型。 The first-ever Traditional Chinese Medicine large…...

如何用UAV-Flow实现语音控制无人机?手把手教你搭建环境与避坑指南

如何用UAV-Flow实现语音控制无人机&#xff1f;从环境搭建到实战避坑全指南 当无人机遇上自然语言处理&#xff0c;会擦出怎样的火花&#xff1f;去年接触UAV-Flow时&#xff0c;我正为一个农业巡检项目头疼——传统摇杆控制需要专业飞手&#xff0c;而农户们更习惯说"绕着…...

OpenClaw技能市场:10个适配Qwen2.5-VL-7B的实用自动化模块

OpenClaw技能市场&#xff1a;10个适配Qwen2.5-VL-7B的实用自动化模块 1. 为什么需要为Qwen2.5-VL-7B定制技能&#xff1f; 当我第一次在本地部署Qwen2.5-VL-7B这个多模态模型时&#xff0c;最让我惊喜的是它对图像和文本的联合理解能力。但很快我发现一个问题&#xff1a;模…...

RAGFlow知识库配置与RAG流程优化实战

1. RAGFlow知识库配置详解 第一次接触RAGFlow知识库时&#xff0c;我被它强大的文档处理能力惊艳到了。记得当时处理一批科研论文PDF&#xff0c;传统方法提取的内容总是支离破碎&#xff0c;而RAGFlow的DeepDoc解析器完美保留了文档的图表和章节结构。下面我就把踩坑后总结的配…...

Git二分法精准定位Bug

Git二分法定位Bug的原理Git二分法基于二分查找算法&#xff0c;通过自动在提交历史中不断缩小范围&#xff0c;定位引入Bug的特定提交。其核心是利用git bisect命令&#xff0c;结合测试脚本或手动验证&#xff0c;高效识别问题根源。准备工作确保本地仓库有完整的提交历史&…...

VMware 16 安装win,Win11推荐下载链接(不要选arm)

目录Win11下载链接待续、更新中......Win11下载链接 ed2k://|file|zh-cn_windows_11_consumer_editions_version_22h2_updated_sep_2022_x64_dvd_23d39103.iso|5579771904|33C7EC6485AD8C55ADFB550FA1A0F270|/ 待续、更新中… 1 顿号、: 先使用ctrl. &#xff0c;再使用一遍切…...

Awoo Installer:让Switch游戏安装像呼吸一样简单

Awoo Installer&#xff1a;让Switch游戏安装像呼吸一样简单 【免费下载链接】Awoo-Installer A No-Bullshit NSP, NSZ, XCI, and XCZ Installer for Nintendo Switch 项目地址: https://gitcode.com/gh_mirrors/aw/Awoo-Installer 还在为Switch游戏安装的各种繁琐步骤头…...