定时器

← 返回 Cortex-M4内核原理 | ← 主页

STM32 定时器按功能复杂度分三级,另有内核级 SysTick 与独立电池域的 RTC 两个计时源。

分类总览

类型代表型号核心能力应用场景
基本定时器TIM6 / TIM7纯定时/计数(向上计数 + 自动重载),无外部引脚定时中断、触发 DAC、给别的定时器当时基
通用定时器TIM25、TIM914+ 输入捕获 / 输出比较 / PWM / 编码器接口PWM 输出、测脉宽/频率、读旋转编码器
高级定时器TIM1 / TIM8+ 互补输出 + 死区 + 刹车电机、三相逆变器、数字电源
SysTick内核级(Cortex-M 自带)24 位递减计数器RTOS 系统心跳(tick)
RTC独立电池域日历 + 闹钟,低功耗持续计时实时时钟

通用定时器三件套

功能原理场景
PWM 输出输出比较:CNT 与 CCR 比较,到点翻转引脚电平电机转速、LED 亮度
输入捕获捕获引脚边沿那一刻的 CNT,两次相减得时间差测脉宽、频率、占空比
编码器接口硬件正交解码:A/B 两相自动计数并判方向旋转编码器读数

高级定时器独有

功能作用
互补 PWM + 死区同一路输出 CHx 与反相 CHxN,中间插死区时间,防 H 桥/逆变器上下管同时导通短路
刹车 (BKIN)刹车引脚触发时硬件自动封死 PWM 输出(无需软件干预),用于过流/故障保护

SysTick

内核自带(非 STM32 外设),24 位向下计数,计到 0 触发中断并重载。RTOS 用它产生周期节拍,驱动时间片轮转与软件定时器。寄存器在 SCS 系统控制空间,CMSIS 用 SysTick->CTRL / LOAD / VAL 访问。

RTC

挂在 VBAT 电池域,主电源掉电后靠纽扣电池继续走。用 LSE(32.768 kHz)分频出 1 Hz,提供日历、闹钟与低功耗唤醒,适合待机计时。

📎 看门狗(IWDG/WWDG)与 RTOS 上下文切换用的 PendSV 属于异常机制,见 中断笔记