TIM(Timer)定时中断 P1

难点:定时器级联、主从模式

一、简介:

1.TIM(Timer)定时器 定时器可以对输入的时钟进行计数,并在计数值达到设定值时触发中断

补充:

{

定时器本质上是一个计数器,可以工作在定时或计数模式,区别是定时模式是对时钟脉冲计数,计数模式是对外部脉冲(遮挡等)计数

1S/72MHZ就是一个时钟周期,也就是基准时钟,计数72个数就是过了1S/72MHZ*72这么多的时间,也就是1Us。1Hz对应1s,1KHz对应1ms,1MHz对应1us

}

2.16位计数器、预分频器(预对计数器的时钟进行分频,让计数更加灵活)、自动重装寄存器(计数的目标值,想要计多少个时钟申请中断)的时基单元,在72MHz计数时钟下可以实现最大

59.65s的定时

-->2^16 x 2^16 = 可记录的最大震荡次数N,N / (每秒震荡次数)72MHz = 最大计时59.65s 

每秒计数次数(72M/65536) / 触发中断的计数值(65536) = 每秒产生的中断数,取倒数 -> 中断周期/间隔时间

(这里有点难理解。换成这样:T=1/f(已分频),t=n*T。T是时钟分频后周期,n是重装计数值,t是可计时的时长。)

3.不仅具备基本的定时中断功能,而且还包含内外时钟源选择、输入捕获、输出比较、编码器接口、主从触发模式等多种功能

4.根据复杂度和应用场景分为了高级定时器、通用定时器、基本定时器三种类型

二、定时器类型

类型编号总线功能
高级定时器TIM1、TIM8APB2

拥有通用定时器全部功能,并额外具有重复计数器、死区生成、互补输出、刹车输入等功能

为了三相无刷电机的驱动设计的

通用定时器TIM2、TIM3、TIM4、TIM5APB1拥有基本定时器全部功能,并额外具有内外时钟源选择、输入捕获、输出比较、编码器接口、主从触发模式等功能
基本定时器TIM6、TIM7APB1拥有定时中断、主模式触发DAC的功能

STM32F103C8T6定时器资源:TIM1、TIM2、TIM3、TIM4

补充还有2个看门狗定时器,1个系统嘀嗒定时器

三、定时器结构图分析

ETR外部时钟模式2是走ETRF进入触发控制器,直接作为时基单元的时钟。而ETR外部时钟模式1是ETRF走TRGI进入从模式控制器(占用了触发输入通道),作为时基单元的时钟。下节课要用!

TIM3--->TRGO-->ITR2实现定时器级联

模式1输入:ETR、其他定时器、CH1引脚边沿、CH1引脚、CH2引脚

四、定时中断基本结构图

五、预分频器时序

注意:上面三种定时器结构图中,有黑色阴影的都是有影子(缓冲)寄存器,包括预分频器、自动重装寄存器和捕获比较寄存器

六、计数器有无预装时序

七、时钟树 

基本:定时中断&外部时钟

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

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

相关文章

如何简单上手清华AutoGPT并搭建到本地环境

一、准备工作 安装Docker:确保你的本地机器上已经安装了Docker。如果还没有安装,请访问Docker官方网站并按照指引进行安装。--点击进入Docker官网 获取清华AutoGPT的Docker镜像:清华AutoGPT团队可能已经提供了一个Docker镜像,方便…

java8新特性——StreamAPI

说明: java8中有两大最为重要的改变。第一个是Lambda表达式;另外一个则是Stream API。 Stream API(java.util.stream)把真正的函数式编程风格引入java。这是目前为止对java类库最好的补充,因为Stream API可以极大提供j…

AI:130-基于深度学习的室内导航与定位

🚀点击这里跳转到本专栏,可查阅专栏顶置最新的指南宝典~ 🎉🎊🎉 你的技术旅程将在这里启航! 从基础到实践,深入学习。无论你是初学者还是经验丰富的老手,对于本专栏案例和项目实践都有参考学习意义。 ✨✨✨ 每一个案例都附带有在本地跑过的关键代码,详细讲解供…

红蓝对抗:网络安全领域的模拟实战演练

引言: 随着信息技术的快速发展,网络安全问题日益突出。为了应对这一挑战,企业和组织需要不断提升自身的安全防护能力。红蓝对抗作为一种模拟实战演练方法,在网络安全领域得到了广泛应用。本文将介绍红蓝对抗的概念、目的、过程和…

rtt设备io框架面向对象学习-硬件rtc设备

目录 1.硬件rtc设备基类2.硬件rtc设备基类的子类3.初始化/构造流程3.1设备驱动层3.2 设备驱动框架层3.3 设备io管理层 4.总结5.使用 1.硬件rtc设备基类 此层处于设备驱动框架层。此层的类是抽象类。 在/ components / drivers / include / drivers 下的rtc.h定义了如下rtc设备…

C# 教程 目录

17.3 图像处理17.3.1 像素处理17.3.1.1 逆反(底片)17.3.1.2 曝光17.3.1.3 灰度17.3.1.4 浮雕17.3.1.5 二值化(黑白)17.3.1.6 自定义处理17.3.2 内存处理17.3.2.1 Bitmap.LockBits方法和Bitmap.UnlockBits方法17.3.2.2 BitmapData类…

Windows11即将停止支持部分旧CPU

Windows11的官方硬件需求高于Windows10,当然网上有很多插件,可以绕过硬件检查,升级win10到win11。 在一些低配的Windows10 PC上运行Windows11基本不会带来任何后果。通过破解插件,一般用户甚至可以在WindowsXP时代的英特尔酷容2&…

【笔记】常用方法

Arrays工具类 使用Arrays.sort( )对自定义类进行排序的时候&#xff0c;这个类需要实现(implements) Comparable<类名>&#xff0c;然后重写compareTo( )这个方法。 Lambda表达式 Lambda表达式&#xff0c;必须要有一个接口类&#xff0c;并且这个接口类中只有有一个抽象…

硬盘合并分区失败显示未格式化怎么办?看这里

在当今数字化时代&#xff0c;硬盘分区已成为计算机存储管理的重要手段。然而&#xff0c;在使用过程中&#xff0c;我们有时会遇到“合并分区失败显示未格式化”的问题&#xff0c;这不仅影响了我们的工作效率&#xff0c;还可能造成数据丢失的风险。下面将根据不同情况给予不…

C语言什么叫逻辑短路?

一、问题 只有电路中才听说过短路。逻辑短路&#xff0c;不像是什么好词⼉。这个词不是描述⼈的&#xff0c;是描述C语⾔程序的。它是程序执⾏时的⼀种特殊的跳跃状态。那么逻辑短路具体是什么呢&#xff1f; 二、解答 C语⾔中&#xff0c;表⽰条件时⽤关系表达式&#xff0c;…

c# BlockingCollection 清空

BlockingCollection<T>在C#中是一个线程安全的集合&#xff0c;用于并发场景。它不提供一个直接的Clear方法&#xff0c;因为这样在多线程环境下可能会引入竞争条件和其他线程安全问题。 如果你真的需要清空这个集合&#xff0c;你可以通过手动取出每一个元素来实现。以下…

数据库事务的4个特性(ACID)

数据库事务具有四个重要的特性&#xff0c;通常称为ACID特性&#xff0c;分别是原子性&#xff08;Atomicity&#xff09;、一致性&#xff08;Consistency&#xff09;、隔离性&#xff08;Isolation&#xff09;和持久性&#xff08;Durability&#xff09;。下面分别对四种特…

【LeetCode: 107. 二叉树的层序遍历 II + BFS】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

相机的机身马达有什么用?

新手疑问&#xff1a; 为什么我的尼康D3200相机明明拥有拍视频能力&#xff0c;但是拍摄视频时却不能对焦 科普时间 那是因为你的相机缺少机身马达&#xff0c;并且你所使用的镜头也没有马达!机身马达是用于给镜头提供对焦动力的装置。它的作用是使相机具备自动对焦功能。如…

TCP常见问题详解

本篇文章我们介绍一下 在我们的面试中和实际开发中使用TCP遇到的问题 1.TCP在什么情况下出现大量的time_event 什么是time_event&#xff1f; 我们首先要弄清楚TIME_WAIT状态是什么&#xff1f;TIME_WAIT状态是主动关闭TCP连接的一方&#xff08;即先发起FIN包的一方&#xf…

node+vue3+mysql前后分离开发范式——实现视频文件上传并渲染

文章目录 ⭐前言⭐ 功能设计与实现💖 node上传文件写入file_map映射表💖 vue3前端上传文件回显⭐ 效果⭐结束⭐前言 大家好,我是yma16,本文分享关于 node+vue3+mysql前后分离开发范式——实现视频文件上传并渲染。 技术选型 前端:vite+vue3+antd 后端:node koa 数据库…

有了NULL,为什么C++还需要nullptr?

目录 1.引言 2.类型安全 3.函数重载 4.代码清晰性 5.示例 6.总结 1.引言 在C编程中&#xff0c;nullptr是一个类型安全的空指针常量&#xff0c;自C11起被引入。然而&#xff0c;在此之前&#xff0c;程序员们通常使用NULL或0来表示空指针。那么&#xff0c;为什么有了N…

在 MySQL 数据库中创建新账号并分配权限

本文介绍如何在 MySQL 数据库中创建新账号并为其分配特定数据库实例的权限。 一、连接到 MySQL 数据库 首先&#xff0c;使用 MySQL 客户端或其他数据库管理工具连接到 MySQL 数据库服务器。你可以使用以下命令。 mysql -u root -p 然后输入密码以登录到 MySQL。 二、创建新…

Leetcode 496. 下一个更大元素 I

题意理解&#xff1a; nums1 中数字 x 的 下一个更大元素 是指 x 在 nums2 中对应位置 右侧 的 第一个 比 x 大的元素。 给你两个 没有重复元素 的数组 nums1 和 nums2 &#xff0c;下标从 0 开始计数&#xff0c;其中nums1 是 nums2 的子集。 对于每个 0 < i < nums1.le…

JVM-垃圾回收(标记算法,收集器)

申明&#xff1a;文章内容是本人学习极客时间课程所写&#xff0c;文字和图片基本来源于课程资料&#xff0c;在某些地方会插入一点自己的理解&#xff0c;未用于商业用途&#xff0c;侵删。 原资料地址&#xff1a;课程资料 垃圾回收的基本原理 1 什么是垃圾&#xff1f; 在…