STM32F0的TIM1高级定时器(未完待续)

2023-10-18 10:04

本文主要是介绍STM32F0的TIM1高级定时器(未完待续),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 1.高级、通用和基本定时器的区别
  • 2.TIM1高级定时器介绍
    • 2.1 时基单元
      • 2.1.1寄存器
      • 2.1.2 预分频器
      • 2.1.3 计数器
      • 2.1.4 重复计数器
    • 2.2 计数时钟
    • 2.3 捕捉/比较通道
      • 2.3.1 通道结构

在这里插入图片描述
输出类型14-12:定时器霍尔传感器配置结构定义
在这里插入图片描述
函数14-100
在这里插入图片描述
在这里插入图片描述

1.高级、通用和基本定时器的区别

答:
在这里插入图片描述
TIM1用于高级控制功能,具有16位自动重载向上/向下计数器和16位预分频器。该定时器有4个独立通道,可用于输入捕捉、输出比较、PWM或单脉冲输出模式。TIM1可以配置成具有6路复合输出的三相PWM控制器,每相均有互补输出通道并带有可编程死区时间控制。
通用定时器可以用于时基或PWM输出,其中TIM2是32位定时器,TIM3是基于16位定时器,这两个定时器均具有自动重载向上/向下计数功能,有16位预分频器和4个独立通道。TIM14、TIM15、TIM16和TIM17都是16位定时器。TIM15有两个独立的通道,TIM14、TIM16和TIM17只有一个通道。这些定时器的每一个通道都具有输入捕捉、输出比较、PWM或单脉冲输出功能。
TIM6和TIM7也是基于16位自动装载向上计数和16位预分频器的定时器,没有输入输出通道,主要用于产生DAC触发事件或作为通用的16位时基使用。

2.TIM1高级定时器介绍

答:
TIM1内部结构如下图。
在这里插入图片描述

2.1 时基单元

2.1.1寄存器

TIM1的时基单元包含4个寄存器,分别是:

寄存器名称
计数器寄存器TIM1_CNT
预分频器寄存器TIM1_PSC
自动装载寄存器TIM1_ARR
重复计数寄存器TIM1_RCR

当TIM1_CR1寄存器的计数器使能位CEN=1时,计数器开始计数。
按照设置的不同,预装载寄存器的内容可以被立即或在每次更新事件(UEV)产生时传送到影子寄存器。更新事件(UEV)是由计数器达到溢出条件(上溢或下溢),且在更新事件允许(TIM1_CR1寄存器的UDIS=0)时产生的。更新事件也可以由软件操作TIM1_EGR寄存器的UG位或由从模式控制器产生定时器复位时产生。
当自动预装载使能(TIM1_CR1寄存器ARPE=1)时,写入自动装载寄存器中的数据将被保存在预装载寄存器中,并在下一个更新事件时传送到影子寄存器并立即生效;当自动预装载禁止时(ARPE=0),写入自动装载寄存器的数据将立即传送至影子寄存器中。

2.1.2 预分频器

预分频器可以将计数器预分频时钟(CK_PSC)1~65536之间的任意值进行分频,得到计数器时钟(CK_CNT)。预分频器的分频比例可以使用以下公式计算:
计数器时钟(fCK_CNT)=计数器预分频时钟(fCK_PSC)/(PSC[15:0]+1)
预分频寄存器带有缓冲器,它能够在定时器运行时改变,新的预分频值会在下一次更新事件到来时生效。
在这里插入图片描述

2.1.3 计数器

16位的计数器(CNT)按照设置的不同,可以向上、向下或向上/向下计数,并产生更新事件。

2.1.4 重复计数器

重复计数寄存器TIM1_RCR的值默认为0,这时计数器每次上溢或下溢都会产生更新事件。当重复计数器的值为N时,则在每N次计数上溢或下溢时,才会产生更新事件。

2.2 计数时钟

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

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

2.3 捕捉/比较通道

TIM1具有4个独立的通道,每个通道都可以配置成输入捕捉、输出比较、PWM或单脉冲输出功能。其中,3个通道具有互补输出功能,当启用了互补输出后,可以设定死区时间控制功能。

2.3.1 通道结构

每一个捕捉/比较通道都包括一个捕捉/比较寄存器TIM1_CCRx(包含影子寄存器)、一个捕捉输入部分(数字滤波、多路复用和预分频器)和一个输出部分(比较器和输出控制)。其中输入部分用于采样相应的TIx输入信号,并产生一个滤波后的信号TIxF。然后,一个带极性选择的边沿检测器依据检测结果生成TIxFPx信号,用于从模式控制器的输入触发或捕捉控制,该信号被预分频后进入捕捉寄存器(ICxPS)。

在这里插入图片描述

这篇关于STM32F0的TIM1高级定时器(未完待续)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/231862

相关文章

Spring Boot 整合 SSE的高级实践(Server-Sent Events)

《SpringBoot整合SSE的高级实践(Server-SentEvents)》SSE(Server-SentEvents)是一种基于HTTP协议的单向通信机制,允许服务器向浏览器持续发送实... 目录1、简述2、Spring Boot 中的SSE实现2.1 添加依赖2.2 实现后端接口2.3 配置超时时

mysql中的group by高级用法

《mysql中的groupby高级用法》MySQL中的GROUPBY是数据聚合分析的核心功能,主要用于将结果集按指定列分组,并结合聚合函数进行统计计算,下面给大家介绍mysql中的groupby用法... 目录一、基本语法与核心功能二、基础用法示例1. 单列分组统计2. 多列组合分组3. 与WHERE结合使

使用Python实现一个优雅的异步定时器

《使用Python实现一个优雅的异步定时器》在Python中实现定时器功能是一个常见需求,尤其是在需要周期性执行任务的场景下,本文给大家介绍了基于asyncio和threading模块,可扩展的异步定... 目录需求背景代码1. 单例事件循环的实现2. 事件循环的运行与关闭3. 定时器核心逻辑4. 启动与停

MySQL高级查询之JOIN、子查询、窗口函数实际案例

《MySQL高级查询之JOIN、子查询、窗口函数实际案例》:本文主要介绍MySQL高级查询之JOIN、子查询、窗口函数实际案例的相关资料,JOIN用于多表关联查询,子查询用于数据筛选和过滤,窗口函... 目录前言1. JOIN(连接查询)1.1 内连接(INNER JOIN)1.2 左连接(LEFT JOI

前端高级CSS用法示例详解

《前端高级CSS用法示例详解》在前端开发中,CSS(层叠样式表)不仅是用来控制网页的外观和布局,更是实现复杂交互和动态效果的关键技术之一,随着前端技术的不断发展,CSS的用法也日益丰富和高级,本文将深... 前端高级css用法在前端开发中,CSS(层叠样式表)不仅是用来控制网页的外观和布局,更是实现复杂交

Springboot如何配置Scheduler定时器

《Springboot如何配置Scheduler定时器》:本文主要介绍Springboot如何配置Scheduler定时器问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录Springboot配置Scheduler定时器1.在启动类上添加 @EnableSchedulin

kotlin中的行为组件及高级用法

《kotlin中的行为组件及高级用法》Jetpack中的四大行为组件:WorkManager、DataBinding、Coroutines和Lifecycle,分别解决了后台任务调度、数据驱动UI、异... 目录WorkManager工作原理最佳实践Data Binding工作原理进阶技巧Coroutine

深入解析Spring TransactionTemplate 高级用法(示例代码)

《深入解析SpringTransactionTemplate高级用法(示例代码)》TransactionTemplate是Spring框架中一个强大的工具,它允许开发者以编程方式控制事务,通过... 目录1. TransactionTemplate 的核心概念2. 核心接口和类3. TransactionT

Python中列表的高级索引技巧分享

《Python中列表的高级索引技巧分享》列表是Python中最常用的数据结构之一,它允许你存储多个元素,并且可以通过索引来访问这些元素,本文将带你深入了解Python列表的高级索引技巧,希望对... 目录1.基本索引2.切片3.负数索引切片4.步长5.多维列表6.列表解析7.切片赋值8.删除元素9.反转列表

正则表达式高级应用与性能优化记录

《正则表达式高级应用与性能优化记录》本文介绍了正则表达式的高级应用和性能优化技巧,包括文本拆分、合并、XML/HTML解析、数据分析、以及性能优化方法,通过这些技巧,可以更高效地利用正则表达式进行复杂... 目录第6章:正则表达式的高级应用6.1 模式匹配与文本处理6.1.1 文本拆分6.1.2 文本合并6