【STM32】定时器的外部时钟模式
⏱️ STM32 定时器 — 外部时钟模式详解
STM32 的定时器除了使用内部时钟(来自 APB1/APB2 总线)进行计数,还可以使用外部信号源作为时钟输入,实现更丰富的控制功能。本文基于图示,解析常见的外部时钟模式及其输入路径。
🔀 外部时钟模式概览
STM32 定时器支持以下几种外部时钟输入模式:
模式名称 | 描述 |
---|---|
外部时钟模式 1 | 外部信号通过 TIx 通道输入,作为触发源驱动定时器 |
外部时钟模式 2 | 外部信号通过 ETR(外部触发输入)输入,直接作为定时器的时钟源 |
🔧 图示结构分解
我们从图中识别出主要的组成模块和信号路径,按模块进行讲解:
🟡 内部时钟:APB1/APB2
- STM32 内部的 APB 总线输出时钟作为默认的计数器时钟;
- 若不启用外部时钟,计数器就以此进行计数。
🔵 外部触发输入(ETR)
ETR(External Trigger)是定时器的专用外部输入端口,路径如下:
ETR → 极性选择 → 边沿检测 → 预分频 → 输入滤波 → 触发器
📌 可通过设置决定 ETR 的输入极性(上升/下降沿)、是否进行滤波和预分频等操作。
✅ 外部时钟模式 2(External Clock Mode 2)
- 最终将 ETR 作为定时器的 实际时钟源;
- 时钟直接输入给 从模式控制器,影响计数器;
- 可用于 频率测量、同步外部硬件时钟 等场景。
🔵 输入通道 TI1 / TI2
定时器可将普通通道输入也作为外部时钟源,路径如下:
TI1 → 输入滤波器 → TI1FP1 → 边沿检测器(生成 TI1_ED)
TI2 → 输入滤波器 → TI2FP2
📌 经滤波后,形成 TIxFPx 信号,再作为触发源输入到触发控制器。
✅ 外部时钟模式 1(External Clock Mode 1)
- 选择 TIx(如 TI1)作为触发源,连接到触发控制器(TRGI);
- 设置定时器为从模式(Slave Mode = External Clock Mode);
- 此时每当 TIx 产生有效边沿,定时器就计数一次。
🔗 触发控制器(Trigger Control)
- 多路输入选择器(MUX),决定使用哪个信号作为 触发源(TRGI);
- 包括 ETR、TI1FP1、TI2FP2、TI1_ED 等;
- 根据配置模式决定最终进入从模式控制器的触发源。
🧠 从模式控制器(Slave Mode Controller)
用于设置定时器的响应方式,有如下几种模式:
模式 | 含义 |
---|---|
Disabled | 不响应触发 |
Reset | 收到触发源信号后,CNT 被清零 |
Gated | TRGI 有效时 CNT 开始计数,失效则停止 |
Trigger | TRGI 信号触发一次计数周期 |
External Clock | TRGI 被当作时钟源(即外部时钟模式 1) |
🔄 与 CNT 计数器的关系
触发控制器和从模式控制器共同决定 计数器的计数时机与频率。
- 若触发信号为外部输入(TI1/ETR),则计数器受控于外部脉冲;
- 配合自动重装载寄存器(ARR)和中断机制,可实现外部驱动的复杂控制。
🧰 应用场景举例
✅ 外部频率测量
- 外部信号输入 TI1;
- 设置为外部时钟模式 1;
- 定时器开始计数,读取 CNT 即得脉冲数。
✅ 外部脉冲控制 PWM 输出
- 外部脉冲输入通过 ETR;
- 配置为外部时钟模式 2;
- 每个外部脉冲触发一次定时器 PWM 更新。
✅ 总结
STM32 的外部时钟模式灵活强大,配合触发控制器与从模式控制器,可实现:
- 精准的外部信号控制
- 外部频率/事件测量
- 多定时器同步操作
- 外设输入与定时器联动
掌握 ETx、TIx、TRGI 的传递逻辑是理解定时器高级应用的关键。