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

4. STM32_定时器

概述

什么是定时器:

定时器核心就是计数器,是使用精准的时基,通过硬件的方式,实现定时功能的器件。

定时器的工作原理:

主频时钟CLK通过PSC进行分频后产生定时器时钟TIM CLK,计数器CNT根据TIM CLK的频率进行计数,当到达所计数的次数后,定时器产生溢出信号可以触发中断或事件,同时ARR将初始值重装载到CNT中,开启下一次的定时。 

定时器的类型:

STM32定时器分为常规定时器、专用定时器、内核定时器。其中常规定时器又分为基本定时器、通用定时器、高级定时器。各类定时器的关系如下:

三种常规定时器的区别:

常规定时器分为基本定时器、通用定时器、高级定时器,它们三个的功能是逐渐增强的关系。

  • 基本定时器:只能实现定时功能
  • 通用定时器:包含基本定时器的功能,并且具有多路独立通道,可用于输入捕获、输出比较
  • 高级定时器:包含通用定时器的功能,并且具有互补输出、刹车输入等电机控制功能。

基本定时器

基本定时器框图:

计数模式: 

计数模式有递增计数模式、递减计数模式、中心对齐计数模式。运行原理如下:

  • 递增计数模式

初始时,CNT = 0。之后CNT一直递增,直到CNT = ARR时溢出,CNT被重新设置为0。

  • 递减计数模式

初始时,CNT = ARR。之后CNT一直递减,直到CNT = 0时溢出,CNT被重新设置为ARR。

  • 中心对齐计数

初始时,CNT = 0。之后CNT一直递增,直到CNT = ARR - 1时溢出,CNT被设置为ARR。

之后CNT一直递减,直到CNT = 1时溢出,CNT被设置为0。之后递增重复以上操作。

对应的溢出条件及初始值总结如下:

计数模式溢出条件初始值
递增计数模式CNT = ARRCNT = 0
递减计数模式CNT = 0CNT = ARR
中心对齐计数模式

CNT = ARR -1

CNT = 1

初始/CNT=1溢出后CNT = 0

CNT=ARR-1溢出后CNT = ARR

各个计数模式的时序图分析:

分析下述时序图的PSC、ARR配置,以及计数模式。

分析:CK_PSC是输入到PSC中的时钟,CK_CNT是输入到CNT的时钟。从图中可以看到,2个CK_PSC产生1个CK_CNT,因此是2分频,PSC = 2-1 = 1。因为溢出信号是计数器上溢,所以是递增计数模式。递增计数模式溢出为ARR,从图中可以看到在CNT = 36时溢出,所以ARR = 36。

定时器溢出时间计算公式:

  • Tout:定时器的溢出时间,单位s
  • PSC:分频系数
  • ARR:溢出时的计数个数,在递增计数模式时,该值就是ARR寄存器中的值;在递减计数模式时,该值是初始化时的值;在中央对齐模式时,该值是ARR-1。
  • Ft:定时器的时钟源频率,就是框图中PSC_CK的值。单位Hz

相关文章:

4. STM32_定时器

概述 什么是定时器: 定时器核心就是计数器,是使用精准的时基,通过硬件的方式,实现定时功能的器件。 定时器的工作原理: 主频时钟CLK通过PSC进行分频后产生定时器时钟TIM CLK,计数器CNT根据TIM CLK的频率…...

Mysql 深度分页问题及优化方案

Mysql 深度分页问题及优化方案 一、为什么 MySQL 深度分页慢?二、优化方案三、补充 一、为什么 MySQL 深度分页慢? 在数据量大时,深分页查询速度缓慢,主要原因是多次回表查询。 前言:N个条件为索引,id为主…...

前端性能优化技巧

前端性能优化技巧 1. 介绍 前端性能优化是确保网站或应用程序快速、响应迅速和流畅的关键。本文档将详细探讨提升前端性能的各种策略和最佳实践。 2. 资源加载优化 2.1 资源压缩 代码压缩:使用 Webpack、Terser 等工具压缩 JavaScript、CSS 文件文件大小压缩&a…...

taro使用createAsyncThunk报错ReferenceError: AbortController is not defined

解决办法: 1,安装这俩包:yet-another-abortcontroller-polyfill,event-target-polyfill 2,app.js import: import ‘event-target-polyfill’; import ‘yet-another-abortcontroller-polyfill’; 补充 但…...

Linux:systemd进程管理【1】

整体理解 要快速掌握Linux的systemd并覆盖80%的使用场景,以下是最重要的20%知识点: Systemd简介与核心功能: Systemd是一个系统和服务管理器,作为Linux系统的PID 1进程,负责启动和管理其他系统组件。它提供并行启动服…...

【Maven】继承和聚合

5. Maven的继承和聚合 5.1 什么是继承 Maven 的依赖传递机制可以一定程度上简化 POM 的配置,但这仅限于存在依赖关系的项目或模块中。当一个项目的多个模块都依赖于相同 jar 包的相同版本,且这些模块之间不存在依赖关系,这就导致同一个依赖…...

【线上问题记录 | 排查网络连接问题】

问题描述 现在有我们程序是部署在服务器A的,A链接的是B。程序从B的redis进行存储和取数据的。 我们的业务是: 信息展示,也就是如果发现机器有异常了,实时进行监控。突然发现有一天,信息显示延迟了。 然后我们就开始排查究竟什么原…...

springboot车辆管理系统设计与实现(代码+数据库+LW)

摘要 随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本文介绍了车辆管理系统的开发全过程。通过分析车辆管理系统管理的不足,创建了一个计算机管理车辆管理系统的方案。文章介绍了车辆管理系统的系统分析部分&…...

独家|京东调整职级序列体系

原有的M、P、T、S主序列将正式合并为新的专业主序列P。 作者|文昌龙 编辑|杨舟 据「市象」独家获悉,京东已在近日在内部宣布对职级序列体系进行调整,将原有的M、P、T、S主序列正式合并为新的专业主序列P,合并后的职级体系将沿用原有专业序…...

Arrays.copyOfRange(),System.arraycopy() 数组复制,数组扩容

Arrays.copyOfRange() 当需要将数组中的 长度扩容时, 数组复制 使用 需要用到Arrays 类提供的的 参数解析 * param original the array from which a range is to be copied * param from the initial index of the range to be copied, inclusive * param to the final ind…...

Python学习37天

# 魔术方法 # 创建类Monster,默认为object的子类 class Monster: name None age None gender None def __init__(self, name, age, gender): self.name name self.age age self.gender gender # 重写魔术方法__str__输出实例对象信息…...

flask的第一个应用

本文编写一个简单的实例来记录下flask的使用 文章目录 简单实例flask中的路由 简单实例 flask的依赖包都安装好之后,我们就可以写一个最简单的web应用程序了,我们把这个应用程序命名为first.py: from flask import Flaskapp Flask(__name__)app.route(/…...

【论文格式】同步更新中

1横向和纵向坐标的坐标密度不能太大,显示太多看起来不好看,本课题组采用emf,目前使用页面内紧凑,600dpi 2Force(kN):k小写 3涉及到变量的,变量本身斜体...

Java-GUI(登录界面示例)

简述: 步骤: (1)构造界面(将组件对象加入容器对象,注意:应设定对容器对象的布局策略) (2)为界面加入事件响应处理(如单击按钮) 实现: 两种方式实现,只有用户名为"admin"且密码为…...

看华为,引入IPD的正确路径

目录 前言 引发重视 作者简介 前言 华为将 IPD 的引入过程归结为三步: 先僵化、后优化、再固化。 如果只是单纯模仿,在不清楚底层逻辑的情况下, 就开始走先僵化的流程,去搞削足适履式的引入。 开始执行后,你就…...

计算机毕业设计Spark+大模型知识图谱中药推荐系统 中药数据分析可视化大屏 中药爬虫 机器学习 中药预测系统 中药情感分析 大数据毕业设计

温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…...

pcb线宽与电流

三十年一路高歌猛进的中国经济, 中国经历了几个三十年? 第一个三十年:以计划为导向。 第二个三十年:以经济为导向。 现在,第三个三十年呢? 应该是以可持续发展为导向。 传统企业摇摇欲坠, 新兴企…...

w~视觉~合集26

我自己的原文哦~ https://blog.51cto.com/whaosoft/12663170 #InternVL 本文设计了一个大规模的视觉-语言基础模型(InternVL),将视觉基础模型的参数扩展到60亿,并逐步与LLM对齐,利用来自不同来源的网络规模的图像-文…...

Qt支持RKMPP硬解的视频监控系统/性能卓越界面精美/实时性好延迟低/录像存储和回放/云台控制

一、前言 之前做的监控系统,已经实现了在windows上硬解码比如dxva2和d3d11va,后续又增加了linux上的硬解vdpau的支持,这几种方式都是跨系统的硬解实现方案,也是就是如果都是windows系统,无论X86还是ARM都通用&#xf…...

【Qt】图片绘制不清晰的问题

背景 实现一个图片浏览器&#xff0c;可以支持放大/缩小查看图片。主要组件如下&#xff1a; // canvaswidget.h #ifndef CANVASWIDGET_H #define CANVASWIDGET_H#include <QWidget>class CanvasWidget : public QWidget {Q_OBJECT public:explicit CanvasWidget(QImag…...

2008年IMO几何预选题第3题

设有两个圆凸内接四边形 A B Q D ABQD ABQD 和 B P Q C BPQC BPQC, 在线段 P Q PQ PQ 上存在一点 E E E, 使得, ∠ E A P ∠ E D Q \angle EAP\angle EDQ ∠EAP∠EDQ, ∠ E B P ∠ E C Q \angle EBP\angle ECQ ∠EBP∠ECQ. 求证: A A A, B B B, C C C, D D D 四点共…...

NAT拓展

NAT ALG&#xff08;NAT应用级网&#xff09; 为某些应用层协议&#xff0c;因为其报文内容可能携带IP相关信息&#xff0c;而普通NAT转化无法将这些IP转化&#xff0c;从而导致协议无法正常运行 例如FTP&#xff0c;DHCP&#xff0c;RSTP&#xff0c;ICMP&#xff0c;IPSEC…...

Flink四大基石之State

State state 可以理解为-- 历史计算结果 有状态计算和无状态计算 无状态计算: 不需要考虑历史数据, 相同的输入,得到相同的输出!如:map, 将每个单词记为1, 进来一个hello, 得到(hello,1),再进来一个hello,得到的还是(hello,1) 有状态计算: 需要考虑历史数据, 相同的输入,可…...

Spacy小笔记:zh_core_web_trf、zh_core_web_lg、zh_core_web_md 和 zh_core_web_sm区别

Spacy小笔记 最近频繁用到spacy&#xff0c;就小记一下。 2024.11.29 zh_core_web_trf、zh_core_web_lg、zh_core_web_md 和 zh_core_web_sm区别 首先&#xff0c;它们都是预训练的中文模型&#xff1a; zh_core_web_trf:395M 架构: 基于 Transformer 架构&#xff08;bert…...

第六届智能控制、测量与信号处理国际学术会议 (ICMSP 2024)

重要信息 2024年11月29日-12月1日 中国陕西西安石油大学雁塔校区 大会官网&#xff1a;www.icmsp.net 大会简介 第六届智能控制、测量与信号处理国际学术会议&#xff08;ICMSP 2024&#xff09;由西安石油大学、中海油田服务股份有限公司、浙江水利水电学院与中国石油装备…...

docker服务容器化

docker服务容器化 1 引言2 多个容器间网络联通2.1 单独创建关联2.2 创建时关联 3 服务搭建3.1 镜像清单3.2 容器创建 4 联合实战4.2 flink_sql之kafka到starrocks4.2 flink_sql之mysql到starrocks 5 文献借鉴 1 引言 ​ 利用docker可以很效率地搭建服务&#xff0c;本文在win1…...

【QT】控件8

1.QDial 通过调节旋钮位置来控制窗口的不透明度&#xff1a; void Widget::on_dial_valueChanged(int value) {qDebug()<<value;this->setWindowOpacity((double)value/100); }效果演示&#xff1a; 2.Date/Time Edit 计算两个日期的差值 ui界面设计 计算按钮按下…...

漫谈推理谬误——错误因果

相关文章 漫谈推理谬误——错误假设-CSDN博客文章浏览阅读736次&#xff0c;点赞22次&#xff0c;收藏3次。在日常生活中&#xff0c;我们会面临各种逻辑推理&#xff0c;有些看起来一目了然&#xff0c;有些非常的科学严谨&#xff0c;但也有很多似是而非&#xff0c;隐藏了陷…...

【数据结构】队列实现剖析:掌握队列的底层实现

在计算机科学中&#xff0c;**队列&#xff08;Queue&#xff09;**是一种常见的数据结构&#xff0c;它遵循先进先出&#xff08;FIFO&#xff0c;First In First Out&#xff09;的原则。队列的应用非常广泛&#xff0c;例如任务调度、资源管理、进程通信等。本篇文章旨在为计…...

【C++】IO库(二):文件输入输出

8.2 文件输入输出 头文件 fstream 定义了三个类型来之支持文件IO&#xff0c;分别是&#xff1a; ifstream&#xff1a;从一个给定文件读取数据&#xff1b;ofstream&#xff1a;向一个给定文件写入数据&#xff1b;fstream&#xff1a;读写给定文件。 在 C 当中&#xff0c…...

青岛网站建设哪家专业/营销网站建设制作

转自&#xff1a;伍陆七&#xff0c;链接&#xff1a;cnblogs.com/chentianming/p/13838347.htmRedis 是一个基于内存中的数据结构存储系统&#xff0c;可以用作数据库、缓存和消息中间件。Redis 支持五种常见对象类型&#xff1a;字符串(String)、哈希(Hash)、列表(List)、集合…...

java做网站吗/谷歌seo需要做什么的

配置解析 核心配置文件 mybatis-config.xml 配置文件中能配置的内容&#xff1a;配置顺序不对会报错 configuration&#xff08;配置&#xff09; properties&#xff08;属性&#xff09; settings&#xff08;设置&#xff09; typeAliases&#xff08;类型别名&#xff0…...

官方网站建设优化/永久观看不收费的直播

相关文章&#xff1a; 机器学习算法入门教程&#xff08;一&#xff09;: 基于逻辑回归的分类预测 机器学习入门算法&#xff08;二&#xff09;: 基于朴素贝叶斯(Naive Bayes)的分类预测 机器学习入门算法&#xff08;三&#xff09;&#xff1a;基于鸢尾花和horse-colic数…...

武汉建设学院网站/站长基地

工程图 函数权限 函数大写字母开头&#xff0c;其他包可以访问该函数 函数小写字母开头&#xff0c;同包可以访问&#xff0c;其他包不能访问 util.go ackage mycomimport "fmt"/**public函数-要大写字母开头*/ func IsBlank(str string) bool {return isEmpty(str)…...

网站开发进度源码/岳阳网站建设推广

linux操作系统课程设计报告操作系统II(实践)期末作业(Linux Shell 程序设计)学院&#xff1a;专业&#xff1a;班级&#xff1a;学号&#xff1a;姓名&#xff1a;2011年6月3日所用仪器、材料。PC一台Redhat linux 5.5二、实验内容&#xff1a;有文本文件student.txt,该文件是所…...

淘宝客个人网站怎么做/百度官网客服

转自&#xff1a; http://blog.csdn.net/a757291228/article/details/62231125 //一个函数&#xff0c;用来响应 register_shutdown_functionfunction shutdownCallback($logPath/tmp/z.log){$arrError error_get_last(); //使用 error_get_last 能捕获错误&#xff0c;等下说…...