STM32高级控制定时器(STM32F103):TIM1和TIM8介绍

目录

概述

1 认识TIM1和TIM8

2 TIM1和TIM8的特性

3 TIM1和TIM6时基和分频

3.1 时基单元

3.2 预分频

3.3 时基和分频相关寄存器

3.3.1TIMx_CR1

3.3.2 TIMx_PSC


概述

本文主要介绍STM32高级定时器TIM1和TIM8的功能,还介绍了与之相关的寄存器的配置参数。包括:分频计数,时间基准等内容。

1 认识TIM1和TIM8

高级控制定时器(TIM1和TIM8)由一个16位自动重新加载计数器驱动通过可编程预分频器。它可以用于多种功能:

1.  测量输入的脉冲长度信号(输入捕获)

2.  生成输出波形(输出比较,PWM、PWM等)

3.  死区插入的互补PWM

脉冲长度和波形周期可以从几微秒调制到几微秒毫秒。可通过使用定时器预分频器和RCC时钟控制器预分频器来实现脉冲长度和波形周期的参数设置。高级控制(TIM1和TIM8)和通用(TIMx)定时器完全独立,不共享任何资源。

2 TIM1和TIM8的特性

索引功能描述
1

16位计数功能:

1)加计数

2)减计数

3)加/减计数

4)自动重载计数

216位可编程预分频器,允许对计数器时钟进行分频(也可“动态”) 频率乘以1和65536之间的任何因子。
3

最大实现4个独立通道工作:

1)输入捕获

2)输出比较

3)自动输出PWM( 边缘和中心对齐模式 )

4)单脉冲模式输出

4具有可编程死区时间的互补输出
5用外部信号控制定时器并互连的同步电路 几个定时器在一起。
6重复计数器,仅在给定周期数后更新定时器寄存器 计数器。
7断开输入,使计时器的输出信号处于重置状态或已知状态
8

以下事件的中断/DMA生成:

1)更新:计数器上溢/下溢,计数器初始化(通过软件或内部/外部触发器)

2)触发器事件(计数器启动、停止、初始化或通过内部/外部触发器计数)

3)输入捕获 输出比较 打断输入

9支持增量(正交)编码器和霍尔传感器电路进行定位目的
10外部时钟或逐周期电流管理的触发器输入

3 TIM1和TIM6时基和分频

3.1 时基单元

可编程高级控制定时器的主块是一个16位计数器,其相关的自动重新加载寄存器。计数器可以向上计数、向下计数或同时向上计数和向下计数。这个计数器时钟可以被预分频器分频。

计数器、自动重新加载寄存器和预分频器寄存器可以通过写入或读取软件即使在计数器运行时也是如此。

时基单位包括:

1)计数寄存器:TIMx_CNT

2)分频寄存器:TIMx_PSC

3)自动重载寄存器:TIMx_ARR

4)重复计数寄存器:TIMx_RCR

自动重新加载寄存器已预加载。写入或读取自动重新加载寄存器访问预加载寄存器。预加载寄存器的内容被传输到影子寄存器永久或在每次更新事件(UEV)时,取决于自动重新加载TIMx_CR1寄存器中的预加载使能位(ARPE)。当计数器达到溢出(或向下计数时下溢),并且如果TIMx_CR1寄存器中的UDIS位等于0 。它也可以由软件生成。更新的生成事件将针对每个配置进行详细叙述。 

计数器由预分频器输出CK_CNT计时,仅当TIMx_CR1寄存器中的计数器启用位(CEN)已设置(另请参阅从属模式控制器描述以获得有关计数器启用的更多详细信息)。

注意: 

在TIMx_CR1中设置CEN位后,计数器开始计数1个时钟周期登记。

3.2 预分频

预分频器可以将计数器时钟频率除以1和65536之间的任何因子。它基于通过16位寄存器(在TIMx_PSC寄存器中)控制的16位计数器。它可以在缓冲该控制寄存器时进行动态更改。新的预分频器比率为在下一次更新事件中考虑。

几个动态改变计数器值的实例:

1)预分频器分频从1变为2的计数器时序图

2)预分频器分频从1变为4的计数器时序图

3.3 时基和分频相关寄存器

3.3.1TIMx_CR1

TIM1 and TIM8 control register 1 (TIMx_CR1)
Address offset: 0x00
Reset value: 0x0000
 

 参数介绍

Bits 9:8 CKD[1:0]: 时钟分频

该比特字段指示定时器时钟(CK_INT)频率与死区时间发生器和数字滤波器使用的死区时间和采样时钟(tDTS)(ETR、TIx):
00: tDTS=tCK_INT
01: tDTS=2*tCK_INT
10: tDTS=4*tCK_INT
11: Reserved, do not program this value
 

Bit 7 ARPE::自动重载使能

0: TIMx_ARR register is not buffered
1: TIMx_ARR register is buffered
 

Bits 6:5 CMS[1:0]: 居中对齐模式选择

00:边缘对齐模式。计数器根据方向位向上或向下计数(目录)。

01:居中对齐模式1。计数器交替向上和向下计数。输出比较设置输出中配置的通道的中断标志(TIMx_CCMRx寄存器中的CCxS=00)只有在计数器倒计时时。

10:居中对齐模式2。计数器交替向上和向下计数。输出比较设置输出中配置的通道的中断标志(TIMx_CCMRx寄存器中的CCxS=00)只有当计数器正在计数时。

11:居中对齐模式3。计数器交替向上和向下计数。输出比较设置输出中配置的通道的中断标志(TIMx_CCMRx寄存器中的CCxS=00)无论是在计数器向上计数还是向下计数时。

Bit 4 DIR: 计数方向
0: 增计数

1:减计数

Bit 3 OPM: 单脉冲模式

0: 计数器未在更新事件中停止

1:计数器在下一次更新事件时停止计数(清除位CEN)

Bit 2 URS: 更新请求源

该位由软件设置和清除,以选择UEV事件源。

0:如果启用,以下任何事件都会生成更新中断或DMA请求。这些事件可以是:

     1)计数器上溢/下溢

     2)设置UG位

     3)通过从属模式控制器更新生成

1:只有计数器上溢/下溢才会生成更新中断或DMA请求,如果启用。

Bit 1 UDIS: 禁止更新

该位由软件设置和清除,以启用/禁用UEV事件生成。

0:UEV已启用。更新(UEV)事件由以下事件之一生成:

     1)计数器上溢/下溢

     2)设置UG位

     3)通过从属模式控制器更新生成

1:UEV已禁用。未生成Update事件,影子寄存器保留其值(ARR、PSC、CCRx)。然而,如果UG位为设置,或者如果从从属模式控制器接收到硬件重置。

Bit 0 CEN: 计数使能

0: 计数失能

1:计数使能

3.3.2 TIMx_PSC

TIM1 and TIM8 prescaler (TIMx_PSC)
Address offset: 0x28
Reset value: 0x0000

 

参数介绍

 Bits 15:0 PSC[15:0]: 分频值

计数器时钟频率(CK_CNT)等于fCK_PSC/(PSC[15:0]+1)。PSC包含在每次更新事件时要加载到活动预分频器寄存器中的值(包括通过TIMx_EGR寄存器的UG位或通过在“重置模式”下配置时触发控制器)。

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

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

相关文章

快速排序 -非递归版-双指针版

个人主页点这里~ 非递归法: 快速排序的非递归实现涉及到使用一个栈来模拟递归调用栈。 因为递归调用内存的栈区一般只有8M,如果数据很多则容易栈溢出(不过现在硬件基本不会),而使用数据结构的栈来模拟实现递归是调用堆区,一般右2G. //得到key int QuickSort1(int* a, int lef…

Sui Bridge在测试网上线并推出10万SUI激励计划

是一种为Sui设计的原生桥接协议,专门用于在Sui与其他网络之间桥接资产和数据。今天,Sui Bridge宣布在测试网上线。作为一种原生协议,Sui Bridge能够在Ethereum和Sui之间轻松且安全地转移ETH、wBTC、USDC和USDT,使其成为Sui基础设施…

ARM-V9 RME(Realm Management Extension)系统架构之功耗管理

安全之安全(security)博客目录导读 目录 一、系统功耗管理 1、功耗状态 2、PE功耗管理 3、系统和PE集群功耗管理 4、系统功耗状态 二、RME组件功耗管理 本节规定了RME系统的功耗管理规则。 功耗管理流程定义了系统及其组件如何在各种电源状态之间进行转换,以…

论文研读|以真实图像为参考依据的AIGC检测

前言:这篇文章介绍几篇AIGC检测的相关工作,其中前几篇文章是以真实图像的特征作为标准进行检测,最后一篇文章就当拓展一下知识边界吧~ 目录 Detecting Generated Images by Real Images Only (202311 arXiv)Let Real Images be as…

代码随想录算法训练营第37天|● 56.合并区间● 738.单调递增的数字

合并区间 56. 合并区间 - 力扣&#xff08;LeetCode&#xff09; 按照左边界从小到大排序之后&#xff0c;如果 intervals[i][0] < intervals[i - 1][1] 即intervals[i]的左边界 < intervals[i - 1]的右边界&#xff0c;则一定有重叠。&#xff08;本题相邻区间也算重贴…

SpringBoot整合H2数据库并将其打包成jar包、转换成exe文件

SpringBoot整合H2数据库并将其打包成jar包、转换成exe文件 H2 是一个用 Java 开发的嵌入式数据库&#xff0c;它的主要特性使其成为嵌入式应用程序的理想选择。H2 仅是一个类库&#xff0c;可以直接嵌入到应用项目中&#xff0c;而无需独立安装客户端和服务器端。 常用开源数…

Linux Debian12使用podman安装pikachu靶场环境

一、pikachu简介 Pikachu是一个带有漏洞的Web应用系统&#xff0c;在这里包含了常见的web安全漏洞。 二、安装podman环境 Linux Debian系统如果没有安装podman容器环境&#xff0c;可以参考这篇文章先安装podman环境&#xff0c; Linux Debian11使用国内源安装Podman环境 三…

【Numpy】一文向您详细介绍 np.trunc()

【Numpy】一文向您详细介绍 np.trunc() 下滑即可查看博客内容 &#x1f308; 欢迎莅临我的个人主页 &#x1f448;这里是我静心耕耘深度学习领域、真诚分享知识与智慧的小天地&#xff01;&#x1f387; &#x1f393; 博主简介&#xff1a;985高校的普通本硕&#xff0c;…

[数据集][目标检测]中国象棋检测数据集VOC+YOLO格式300张12类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;300 标注数量(xml文件个数)&#xff1a;300 标注数量(txt文件个数)&#xff1a;300 标注类别…

Django后台忘记管理员的账号

使用命令启动项目&#xff1a; python manage.py runserver输入后缀/admin&#xff0c;进入后台管理员&#xff0c;如果此时忘记你先前设置的用户名与密码怎么办&#xff1f; 终端输入&#xff1a; python manage.py shell 输入以下内容&#xff0c;并查看返回结果&#xff…

用【R语言】揭示大学生恋爱心理:【机器学习】与【深度学习】的案例深度解析

目录 第一部分&#xff1a;数据收集与预处理 1.1 数据来源 1.2 数据清洗 1.3 数据探索性分析 第二部分&#xff1a;特征工程与数据准备 2.1 特征选择 2.2 特征提取 第三部分&#xff1a;机器学习模型 3.1 逻辑回归模型 3.2 决策树模型 第四部分&#xff1a;深度学习…

ui自动化中,隐式等待和显示等待什么时候使用

隐式等待 在页面刷新加载时&#xff0c;页面元素还没有出来&#xff0c;这个时候如果去找元素就会找不到报错 或者点了一个菜单&#xff0c;页面加载时 用笨办法&#xff0c;就是用sleep等待固定的时间&#xff0c;这种浪费的时间比较多&#xff0c;就可以用隐式等待&#xf…

美业门店管理系统Java源码分享-【库存管理】的功能和作用

美业收银系统在美容行业中的作用和重要性体现在提高管理效率、提升客户满意度、降低成本、促进业务增长等方面。它为连锁美业提供了一个全面的管理工具&#xff0c;能够更好地应对市场挑战&#xff0c;提升竞争力。 美业系统中的【库存管理】在整个美容行业中起着非常重要的作…

【SpringCloud学习笔记】RabbitMQ(中)

1. 交换机概述 前面《RabbitMQ上篇》我们使用SpringAMQP来演示如何用Java代码操作RabbitMQ&#xff0c;当时采用的是生产者直接将消息发布给队列&#xff0c;但是实际开发中不建议这么多&#xff0c;更加推荐生产者将消息发布到交换机(exchange)&#xff0c;然后由exchange路由…

护眼台灯攻略:护眼台灯真的有用吗?

当前&#xff0c;近视问题在人群中愈发普遍&#xff0c;据2024年的统计数据显示&#xff0c;我国儿童青少年的总体近视率已高达52.7%。近视的人越来越多&#xff0c;近视背后还潜藏着视网膜脱离、白内障、开角型青光眼等眼部疾病&#xff0c;严重的情况甚至可能引发失明。长时间…

P3388 【模板】割点(割顶)

题目背景 割点 题目描述 给出一个 n 个点&#xff0c;m 条边的无向图&#xff0c;求图的割点。 输入格式 第一行输入两个正整数 n,m。 下面 m 行每行输入两个正整数 x,y 表示 x 到 y 有一条边。 输出格式 第一行输出割点个数。 第二行按照节点编号从小到大输出节点&am…

CNAS认证是什么?怎么做?

在全球化日益深入的今天&#xff0c;产品质量和安全已经成为企业生存和发展的重要基石。而在这个过程中&#xff0c;CNAS认证作为一种权威性的认可机制&#xff0c;发挥着不可替代的作用。那么&#xff0c;CNAS认证究竟是什么&#xff1f;我们又该如何进行这一认证过程呢&#…

【MySQL】表的基本增删查改(结合案例)

文章目录 1.前言2.插入数据&#xff08;Create&#xff09;2.1案例2.2单行数据全列插入2.3多行数据指定列插入2.4插入否则更新2.5替换 3. 读取数据(Retireve)3.1案例3.2全列查询3.3指定列查询3.4查询字段为表达式3.5为查询结果起别名3.6去重3.7where条件3.7.1案例 3.8排序3.9筛…

算法刷题【二分法】

题目&#xff1a; 注意题目中说明了数据时非递减的&#xff0c;那么这样就存在二分性&#xff0c;能够实现logn的复杂度。二分法每次只能取寻找特定的某一个值&#xff0c;所以我们要分别求左端点和有端点。 分析第一组用例得到结果如下: 成功找到左端点8 由此可知&#xff0…