【STM32项目实战系列】了解ST系列MCU外设:定时器TIM
前言:TIM(定时器)外设是用于时间管理、计时、脉冲宽度调制(PWM)输出、输入捕获、输出比较等功能的重要模块,本篇文章就详细介绍一下。以供大家学习使用。
当然我们在学习MCU外设模块的时候,翻看参考手册是一个非常好的工具,那里面有非常详细的关于外设具体原理,分类与使用方法的讲解,在官网下载的一般都是全英文版本的,这里我会给大家上传一个全中文的版本,以供大家参考使用。
1,TIM简介
根据官方的F4的参考手册里面的内容,共有2个高级控制定时器TIM1、TIM8,2个基本定时器TIM6、TIM7,10个通用定时器TIM2~TIM5、TIM9~TIM14(PS:这里面的内容基本适用于整个STM32F4系列的微控制器)
其主要的功能列举如下:
-
定时功能(Timer):所有的TIM定时器都可以用作基本的计时器,计时器周期可以通过外部时钟源或内部时钟源来控制。计时器的计数值可以用来生成定时中断或控制其他外设。
-
PWM输出:定时器能够生成精确的PWM信号,广泛应用于电机控制、亮度调节、音频输出等领域。通过调整定时器的预分频和自动重装载值,可以控制PWM信号的周期和占空比。
-
输入捕获:输入捕获功能允许定时器记录输入信号的上升沿或下降沿的时间。它非常适用于测量频率、周期、脉冲宽度等参数。
-
输出比较:输出比较功能用于生成定时器比较输出事件。例如,当定时器计数值与预定的比较值相等时,可以触发输出引脚的状态改变,适用于生成精确的时间控制信号。
-
死区时间控制:高级定时器(如TIM1和TIM8)支持死区时间控制,适用于电机驱动等需要精确控制开关信号的应用,能够避免由于两个相反信号的同时变化而引起的短路问题。
-
自动重载和预分频:定时器支持自动重载(ARR)和预分频(PSC),可以灵活设置计时器的周期和分辨率。
-
多通道支持:每个定时器通常支持多个输出通道(例如,TIM2有4个通道),这意味着一个定时器可以同时控制多个PWM输出或多个输入捕获功能。
2,TIM定时器分类介绍
2.1 高级定时器
【用途】
高级定时器可用于各种用途,包括测量输入信号的脉冲宽度(输入捕获),或者生成输出波形(输出比较、PWM 和带死区插入的互补PWM)。使用定时器预分频器和 RCC 时钟控制器预分频器,可将脉冲宽度和波形周期从几微秒调制到几毫秒。
【主要特性】
(1)16 位递增、递减、递增/递减自动重载计数器。16位可编程预分频器,用于对计数器时钟频率进行分频(即运行时修改),分频系数介于1到 65536 之间。
(2)多达 4 个独立通道,可用于:
- 输入捕获
- 输出比较
- PWM 生成(边沿和中心对齐模式)
- 单脉冲模式输出
(3)带可编程死区的互补输出。
(4)使用外部信号控制定时器且可实现多个定时器互连的同步电路。
(5)重复计数器,用于仅在给定数目的计数器周期后更新定时器寄存器。用于将定时器的输出信号置于复位状态或已知状态的断路输入。
(6)发生如下事件时生成中断/DMA 请求:
- 更新:计数器上溢/下溢、计数器初始化(通过软件或内部/外部触发)触发事件(计数器启动、停止、初始化或通过内部/外部触发计数)
- 输入捕获
- 输出比较
- 断路输入
(7)支持定位用增量(正交)编码器和霍尔传感器电路。
(8)外部时钟触发输入或逐周期电流管理
【内部原理框图】
【详细功能说明】
这里面的内容太多了,后面上传的文档中大家可以自行查看,功能还是比较多的,想什么PWM模式、单脉冲模式、编码器接口模式。
【寄存器分类】
如果你是使用的传统底层的寄存器的开发模式,那么这一项就是你必须要详细看的内容,其实无论是标准库还是HAL库都是基于寄存器的二次开发而已。
2.2 通用定时器
【用途】
通用定时器包含一个 16 位或 32 位自动重载计数器,该计数器由可编程预分频器驱动。它们可用于多种用途,包括测量输入信号的脉冲宽度(输入捕获)或生成输出波形(输出比较和 PWM)。使用定时器预分频器和 RCC 时钟控制器预分频器,可将脉冲宽度和波形周期从几微秒调制到几毫秒。
【主要特性】
(1)16 位(TIM3 和 TIM4)或 32 位数器(TIM2 和 TIM5)递增、递减和递增/递减自动重载计
(2)16 位可编程预分频器,用于对计数器时钟频率进行分频(即运行时修改),分频系数介于1到 65536 之间。
(3)多达 4 个独立通道,可用于:
- 输入捕获
- 输出比较
- PWM 生成(边沿和中心对齐模式)
- 单脉冲模式输出
(4)使用外部信号控制定时器且可实现多个定时器互连的同步电路,发生如下事件时生成中断/DMA 请求:
- 更新:计数器上溢/下溢、计数器初始化(通过软件或内部/外部触发)
- 触发事件(计数器启动、停止、初始化或通过内部/外部触发计数)
- 输入捕获
- 输出比较
(5)支持定位用增量(正交)编码器和霍尔传感器电路
(6)外部时钟触发输入或逐周期电流管理
【内部原理框图】
【详细功能说明】
【寄存器分类】
2.3 基本定时器
【用途】
基本定时器 TIM6 和 TIM7 包含一个 16 位自动重载计数器,该计数器由可编程预分频器驱动。此类定时器不仅可用作通用定时器以生成时基,还可以专门用于驱动数模转换器(DAC)。实际上,此类定时器内部连接到 DAC 并能够通过其触发输出驱动 DAC。这些定时器彼此完全独立,不共享任何资源。
【主要特性】
(1)16位自动重载递增计数器
(2)16 位可编程预分频器,用于对计数器时钟频率进行分频(即运行时修改),分频系数介于1和 65536 之间用于触发 DAC 的同步电路
(3)发生如下更新事件时会生成中断/DMA 请求:计数器上溢
【内部原理框图】
【详细功能说明】
这个功能就比较少了,毕竟是一个基本定时器。
【寄存器分类】
上面资源已经上传,大家自行查看吧!!!在用中学习与精进。。。