0601STM32TIM

@TOC
分为四部分,八小节
一部分:主要讲定时器基本定时的功能,也就是定一个事件,让定时器每隔这个时间产生一个中断,来实现每隔一个固定时间来执行一段程序的目的,比如做一个时钟、秒表,或者使用一些程序算法的时候,都需要用到定时中断的功能
二部分:定时器输出比较的功能,输出比较模块最常见的用途是产生PWM波形,用于驱动电机等设备(学习一下驱动舵机和直流电机)
三部分:定时器输入捕获的功能,学习使用输入捕获这个模块实现测量方波频率的例子
四部分:定时器的编码器接口,使用编码器接口,更加方便地读取正交编码器的输出波形,在编码电机测速中,应用广泛

STM32中功能最强大、结构最复杂的一个外设——定时器
在这里插入图片描述

定时器本质上是一个计数器,当计数器的输入是一个准确可靠的基准时钟的时候,那就基准时钟计时的过程中,实际上就是计时的过程,比如STM32中,定时器的基准时钟一般都是主频72MHz,比如对72MHz计72个数,那就是1MHz也就是1us的时间,如果计72000个数,就是1KHz,1ms时间,
16位计数器就是用来执行技术定时器的一个寄存器,每来一个时钟,计数器加1,
预分频器可以对计数器的时钟进行分频,让这个计数更加灵活
自动重装寄存器就是技术的目标值,就是想要计时多少个时钟申请中断
这些寄存器构成了定时器最核心的部分,我们把这一块电路称为时基单元。

时基单元里计数器、预分频器、自动重装寄存器都是16位的,216=65536,也就是如果预分频器设置最大,自动重装也设置最大,那定时器的最大定时时间就是59.65s, 72M/65536/65536得到的是中断频率,然后取倒数,就是59.65s多。如果还觉得不长,STM32的定时器还支持级联的模式,也就是一个定时器的输出,当做另一个定时器的输入,,这样就是59.65s再乘两次65536=8千多年,如果还嫌短,再级年一个定时器,,定时时间再延长65536*65536倍,时间大概是34万亿年。可见指数爆炸的威力。

由于定时器的这个基本结构是非常通用的,很多模块电路都能用到,所以STM32定时器上扩展了非常多的功能,第一部分讲定时器中断和内外时钟源选择的功能,第二部分讲输出比较,第三部分讲输入捕获和主从触发模式,第四部分讲编码器接口。

学习学的是通用定时器
在这里插入图片描述
因为同一块芯片有很多定时器,所以TIM后面会跟一个数字,编号和定时器类型的对应关系就是TIM1和TIM8是高级定时器,2345是通用定时器,67是基本定时器。连接的总线不一样,需要注意一下。

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

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

相关文章

【Linux】1w详解如何实现一个简单的shell

目录 实现思路 1. 交互 获取命令行 2. 子串分割 解析命令行 3. 指令的判断 内建命令 4. 普通命令的执行 补充:vim 文本替换 整体代码 重点思考 1.getenv和putenv是什么意思 2.代码extern char **environ; 3.内建命令是什么 4.lastcode WEXITSTATUS(sta…

Java-final关键字详解

Java-final关键字详解 一、引言 二、什么是 final 关键字? 三、final 变量 final 局部变量 final 实例变量 final 静态变量 四、final 方法 五、final 类 六、final 关键字的实际应用 1. 定义常量 2. 防止方法被重写 3. 创建不可变类 4. 优化性能 七、…

切割01串(牛客小白月赛98)

题意&#xff1a; 给三个整数n&#xff0c;l&#xff0c;r&#xff0c;和一个字符串s&#xff0c;满足l<|c0-c1|<r就可以切成字符串a和字符串b&#xff0c;c0为字符串a左侧出现0的次数&#xff0c;c1为字符串b右侧出现1的次数&#xff0c;求最多切割次数 知识点&#x…

Onnx 1-深度学习-概述1

Onnx 1-深度学习-概述1 一: Onnx 概念1> Onnx 介绍2> Onnx 的作用3> Onnx 应用场景4> Onnx 文件格式1. Protobuf 特点2. onnx.proto3协议3> Onnx 模型基本操作二:Onnx API1> 算子详解2> Onnx 算子介绍三: Onnx 模型1> Onnx 函数功能

昇思学习打卡-8-计算机视觉/FCN图像语义分割

目录 FCN介绍FCN所用的技术训练数据的可视化模型训练模型推理FCN的优点和不足优点不足 FCN介绍 FCN主要用于图像分割领域&#xff0c;是一种端到端的分割方法&#xff0c;是深度学习应用在图像语义分割的开山之作。通过进行像素级的预测直接得出与原图大小相等的label map。因…

【C++基础】初识C++(2)--引用、const、inline、nullptr

目录 一、引用 1.1 引用的概念和定义 1.2 引用的特性 1.3引用的使用 1.4 const引用 1.5 指针和引用的关系 二、inline 三、nullptr 一、引用 1.1 引用的概念和定义 引⽤不是新定义⼀个变量&#xff0c;⽽是给已存在变量取了⼀个别名&#xff0c;编译器不会为引⽤…

微软的人工智能语音生成器在测试中达到与人类同等水平

微软公司开发了一种新的神经编解码语言模型 Vall-E&#xff0c;在自然度、语音鲁棒性和说话者相似性方面都超越了以前的成果。它是同类产品中第一个在两个流行基准测试中达到人类同等水平的产品&#xff0c;而且显然非常逼真&#xff0c;以至于微软不打算向公众开放。 VALL-E …

Node.js 模块系统

Node.js 模块系统 Node.js 的模块系统是其核心特性之一,它允许开发者将代码组织成可重用的模块。这种系统促进了代码的模块化,使得大型应用程序的构建和管理变得更加容易。本文将深入探讨 Node.js 的模块系统,包括其工作原理、如何创建和使用模块,以及模块系统的优势和局限…

【每日一练】python类和对象现实举例详细讲解

""" 本节课程目的&#xff1a; 1.掌握类描述现实世界实物思想 2.掌握类和对象的关系 3.理解什么事面向对象 """ #比如设计一个闹钟&#xff0c;在这里就新建一个类 class Clock:idNone #闹钟的序列号&#xff0c;也就是类的属性priceNone #闹…

Git最常用操作速查表

Git常用操作 文章目录 Git常用操作1. 克隆/拉取2. 分支操作1. 查看分支2. 创建分支3. 切换到分支4. 删除分支5. 删除远程分支6. 推送分支到远程 3. 暂存库操作4. Git团队规范1. 原则2. 分支设计3. commit备注一般规范 1. 克隆/拉取 git clone xxx 从远程仓库克隆 git rebase…

【开源之美】:WinMerge Files

一、引言 强大的windows端文件比较工具&#xff0c;跟Beyond Compare相比&#xff0c;更为强大。但是这里我们推荐他的原因&#xff0c;不仅是因为作为一个使用的工具&#xff0c;主要是因为他开源&#xff0c;可以通过调试优秀的源代码&#xff0c;进一步的提升C项目设计和编…

Alternative to Receptive field in Transformers and what factors impact it

题意&#xff1a;Transformer中感受野的替代概念及其影响因素 问题背景&#xff1a; I have two transformer networks. One with 3 heads per attention and 15 layers in total and second one with 5 heads per layer and 30 layers in total. Given an arbitrary set of d…

什么是数据模型?数据模型与数据治理有什么关系?

在企业数据治理的广阔领域中&#xff0c;首要且关键的一步是明确沟通数据治理的需求。这包括对企业所持有的数据种类、数据存储位置、以及当前数据管理的具体情况有一个清晰的了解和记录。了解企业的数据资产是制定有效数据治理策略的基础。企业需要识别和盘点所有类型的数据资…

AIGC产品经理学习路径

基础篇&#xff08;课时 2 &#xff09; AIGC 行业视角 AIGC 的行业发展演进&#xff1a;传统模型/深度学习/大模型 AIGC 的产品设计演进&#xff1a;AI Embedded / AI Copilot / AI Agen AIGC 的行业产业全景图 AIGC 的产品应用全景图 AIGC 职业视角 AI 产品经理/ AIGC…

2974.最小数字游戏

1.题目描述 你有一个下标从 0 开始、长度为 偶数 的整数数组 nums &#xff0c;同时还有一个空数组 arr 。Alice 和 Bob 决定玩一个游戏&#xff0c;游戏中每一轮 Alice 和 Bob 都会各自执行一次操作。游戏规则如下&#xff1a; 每一轮&#xff0c;Alice 先从 nums 中移除一个 …

Spring MVC 全面指南:从入门到精通的详细解析

引言&#xff1a; Spring MVC&#xff0c;作为Spring框架的一个重要模块&#xff0c;为构建Web应用提供了强大的功能和灵活性。无论是初学者还是有一定经验的开发者&#xff0c;掌握Spring MVC都将显著提升你的Web开发技能。本文旨在为初学者提供一个全面且易于理解的学习路径…

数据建设实践之大数据平台(五)安装hive

安装hive 上传安装包到/opt/software目录并解压 [bigdata@node101 software]$ tar -zxvf hive-3.1.3-with-spark-3.3.1.tar.gz -C /opt/services [bigdata@node101 services]$ mv apache-hive-3.1.3-bin apache-hive-3.1.3 配置环境变量 export JAVA_HOME=/opt/services…

Debezium系列之:验证mysql、mariadb等兼容mysql协议数据库账号权限

Debezium系列之:验证mysql、mariadb等兼容mysql协议数据库账号权限 一、数据库需要开启binlog二、创建账号和账号需要赋予的权限三、账号具有权限查看日志信息四、验证账号权限五、验证账号能否执行show master status六、验证数据库是否开启binlog一、数据库需要开启binlog …

实验9 存储过程与函数的创建管理实验

一、实验目的&#xff1a; 理解存储过程和函数的概念。掌握创建存储过程和函数的方法。掌握执行存储过程和函数的方法。掌握游标的定义、使用方法。 二、实验内容 1&#xff0e;某超市的食品管理的数据库的Food表&#xff0c;Food表的定义如表所示&#xff0c; Food表的定义…

【进阶篇-Day8:JAVA中递归、异常的介绍】

目录 1、递归的介绍和使用1.1 递归的介绍1.2 案例案例一&#xff1a;案例二&#xff1a;案例三&#xff1a;案例四&#xff1a; 1.3 总结 2、异常的介绍和使用2.1 异常的介绍&#xff1a;&#xff08;1&#xff09;能够看懂异常&#xff08;2&#xff09;异常的体系接口和分类&…