STM32 定时器(Timer)

STM32 的定时器是一个非常强大且灵活的外设,不仅能做简单的定时,还能实现 PWM、输入捕获、输出比较、编码器接口等多种功能。

1. 定时器的基本作用:

定时/延时:产生固定时间间隔的中断或事件。

PWM 输出:控制电机速度、LED 亮度、音频信号等。

输入捕获:测量外部信号的频率、脉宽。

输出比较:在指定时间点翻转引脚电平,用于产生精准波形。

编码器接口:读取旋转编码器信号,获取速度和方向。

同步与触发:多个定时器同步工作,或作为 ADC、DAC 的触发源。

2. 定时器的分类:

高级定时器(Advanced Timer):如 TIM1 、 TIM8 支持所有功能,包括带死区控制的互补 PWM(适合电机驱动),可作为主定时器同步其他定时器。

通用定时器(General Purpose Timer):如 TIM2 ~ TIM5 支持定时、PWM、输入捕获、输出比较、编码器接口。

基本定时器(Basic Timer):如 TIM6 、 TIM7 只有定时功能,常用来触发 DAC。

低功耗定时器(Low-Power Timer):如 LPTIM1 在低功耗模式下也能运行,适合电池供电设备。

3. 工作原理:

定时器本质是一个计数器,由时钟驱动,当计数值达到预设值(自动重装值 ARR)时产生更新事件。

时钟源选择:

内部时钟(CK_INT):来自 APB 总线。

外部时钟:来自引脚输入(TI1、TI2)。

其他定时器的输出作为时钟。

计数器模式:

向上计数:从 0 到 ARR。

向下计数:从 ARR 到 0。

中心对齐(向上/向下):对称 PWM 常用。

4. 常见工作模式

1 定时/延时模式

通过设置 PSC(预分频器) 和 ARR(自动重装值) 控制定时周期。

计算公式:

定时周期 = (PSC + 1) * (ARR + 1) / 时钟频率

可在更新事件时产生中断,实现周期性任务。

2 PWM 输出模式

PWM 模式 1:计数器 < 比较值(CCR)时输出高电平。

PWM 模式 2:计数器 < 比较值(CCR)时输出低电平。

占空比 = CCR / (ARR + 1)。

高级定时器支持互补输出和死区插入,适合 H 桥驱动。

3 输入捕获模式

将外部引脚的电平变化(上升沿/下降沿)锁存到 CCR 寄存器。

可测量:

脉冲宽度(测脉宽)

信号周期(测频)

常用于编码器、红外信号解码等。

4 输出比较模式

当计数器值等于比较值(CCR)时,执行预设动作:

翻转引脚

强制输出高/低

产生中断

适合生成精准时间间隔的脉冲。

5 编码器接口模式

连接旋转编码器 A、B 相,自动计数并判断方向。

常用于电机位置检测、旋钮输入。

相关推荐
LNN202211 小时前
STM32H7 + 迪文屏 DGUS 开发实战:从零构建工业级时间设置界面
stm32·单片机·嵌入式硬件
Z文的博客14 小时前
嵌入式MCU与迪文屏通信:DMA+环形FIFO+变长队列+状态机完整手册
stm32·单片机·串口·dma·中断·串口dma·嵌入式单片机
BackCatK Chen15 小时前
STM32保姆级入门教程|第7章:串口通信(USART)收发数据 + printf重定向打印调试(功能超详细+CubeIDE手把手)
stm32·串口通信·usart·stm32cubeide·printf重定向·嵌入式调试·中断接收
12.=0.15 小时前
【stm32_5】Systick嘀嗒定时器、解析时钟源、分析时钟树、应用Systick设计延时
c语言·stm32·单片机·嵌入式硬件
达不溜的日记16 小时前
CAN总线网络传输层CanTp详解
网络·stm32·嵌入式硬件·网络协议·网络安全·信息与通信·信号处理
森利威尔电子-17 小时前
森利威尔SL6129兼容 AL8805 / AL8806,输入电压 5.5V - 30V,最大输出电流 1.2A
单片机·嵌入式硬件·集成电路·芯片·电源芯片
FreakStudio17 小时前
嘉立创开源:应该是全网MicroPython教程最多的开发板
python·单片机·嵌入式·大学生·面向对象·并行计算·电子diy
qq_4416857517 小时前
CC26xx开发 第一节 前期准备
嵌入式硬件
史蒂芬_丁17 小时前
TI F28P65 使用 ePWM 模块模拟 SPI 时钟的详细方法
单片机·嵌入式硬件·fpga开发
LinuxRos17 小时前
I2C子系统与驱动开发:从协议到实战
linux·人工智能·驱动开发·嵌入式硬件·物联网