系统地了解 STM32 的 定时器类型,理解 STM32 定时器功能和选型的基础。我们以 STM32F103ZETx 为例,它有多个定时器种类,各自用途不同。
🧠 一、STM32 定时器的四大类型
定时器类型 | 名称(实例) | 特点/用途 |
---|
基本定时器 | TIM6、TIM7 | ✅ 仅支持定时中断,没有通道、不能输出PWM |
通用定时器 | TIM2、TIM3、TIM4、TIM5 | ✅ 定时中断 ✅ PWM ✅ 输入捕获/输出比较等多功能 |
高级定时器 | TIM1、TIM8 | ✅ 带死区控制,支持互补PWM,适合电机控制 |
系统定时器 | SysTick | ✅ 内核定时器,一般用于操作系统节拍定时 |
🔧 二、详细介绍各类型定时器
🟡 1. 基本定时器(TIM6、TIM7)
特点 | 说明 |
---|
无输入输出通道 | 不能用作PWM或捕获 |
用于提供 DAC 触发、时间中断 | 常用于触发事件、时间基准、延时等 |
配置简单 | 适合做周期性中断(如定时翻转LED) |
🔵 2. 通用定时器(TIM2~5)
特点 | 说明 |
---|
支持输入捕获、输出比较、PWM | 可测频率、占空比、生成PWM波形等 |
可用于编码器接口 | TIM2~5 可配置为编码器模式 |
通用性强,功能丰富 | 多达 4 个通道,每个通道独立控制 |
TIM2 是 32 位定时器(F1 系列) | 可测量更长时间间隔 |
🔴 3. 高级定时器(TIM1、TIM8)
特点 | 说明 |
---|
支持互补输出 + 死区控制 | 适用于三相电机、逆变器等电力电子场景 |
拥有更多触发机制和保护机制 | 如刹车输入、锁止配置、互锁等 |
具备 DMA、同步控制功能 | 可与 ADC、DMA、其它定时器协同工作 |
🟠 4. SysTick 系统定时器
特点 | 说明 |
---|
属于 Cortex-M 内核 | 所有 Cortex-M 系列 MCU 都有 |
用于系统节拍 | 常用于 RTOS 定时节拍(比如每 1ms 触发一次) |
配置简单,精度高 | 通常工作于 1ms、1us 精度 |
📌 三、总结对比表
类型 | 实例 | 用途/特点 | 备注 |
---|
基本定时器 | TIM6, TIM7 | 简单定时、DAC触发 | 没有通道 |
通用定时器 | TIM2–5 | PWM、输入捕获、输出比较等 | 多功能定时器 |
高级定时器 | TIM1, TIM8 | 高级PWM、电机控制 | 有死区、互补、刹车等功能 |
系统定时器 | SysTick | OS节拍定时 | 固定用途 |
💡 四、开发建议
-
做普通定时任务、LED翻转、系统节拍 ➜ 用 TIM6
/ TIM7
/ SysTick
-
需要PWM、输入捕获、测量信号 ➜ 用 TIM2~TIM5
-
搞电机控制、逆变驱动等高级功能 ➜ 上 TIM1
/ TIM8
-
要做操作系统时基(RTOS) ➜ SysTick