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

相关文章

Apache 高级配置实战之从连接保持到日志分析的完整指南

《Apache高级配置实战之从连接保持到日志分析的完整指南》本文带你从连接保持优化开始,一路走到访问控制和日志管理,最后用AWStats来分析网站数据,对Apache配置日志分析相关知识感兴趣的朋友... 目录Apache 高级配置实战:从连接保持到日志分析的完整指南前言 一、Apache 连接保持 - 性

mysql中的group by高级用法详解

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

PyTorch高级特性与性能优化方式

《PyTorch高级特性与性能优化方式》:本文主要介绍PyTorch高级特性与性能优化方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、自动化机制1.自动微分机制2.动态计算图二、性能优化1.内存管理2.GPU加速3.多GPU训练三、分布式训练1.分布式数据

Spring Boot集成SLF4j从基础到高级实践(最新推荐)

《SpringBoot集成SLF4j从基础到高级实践(最新推荐)》SLF4j(SimpleLoggingFacadeforJava)是一个日志门面(Facade),不是具体的日志实现,这篇文章主要介... 目录一、日志框架概述与SLF4j简介1.1 为什么需要日志框架1.2 主流日志框架对比1.3 SLF4

Spring Boot集成Logback终极指南之从基础到高级配置实战指南

《SpringBoot集成Logback终极指南之从基础到高级配置实战指南》Logback是一个可靠、通用且快速的Java日志框架,作为Log4j的继承者,由Log4j创始人设计,:本文主要介绍... 目录一、Logback简介与Spring Boot集成基础1.1 Logback是什么?1.2 Sprin

MySQL复合查询从基础到多表关联与高级技巧全解析

《MySQL复合查询从基础到多表关联与高级技巧全解析》本文主要讲解了在MySQL中的复合查询,下面是关于本文章所需要数据的建表语句,感兴趣的朋友跟随小编一起看看吧... 目录前言:1.基本查询回顾:1.1.查询工资高于500或岗位为MANAGER的雇员,同时还要满足他们的姓名首字母为大写的J1.2.按照部门

Python中Flask模板的使用与高级技巧详解

《Python中Flask模板的使用与高级技巧详解》在Web开发中,直接将HTML代码写在Python文件中会导致诸多问题,Flask内置了Jinja2模板引擎,完美解决了这些问题,下面我们就来看看F... 目录一、模板渲染基础1.1 为什么需要模板引擎1.2 第一个模板渲染示例1.3 模板渲染原理二、模板

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. 启动与停