【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 的传递逻辑是理解定时器高级应用的关键。


相关推荐
xiaotianyun884 分钟前
NCP13992 CS 分压计算
单片机·嵌入式硬件·ncp13992
偶像你挑的噻1 小时前
Linux应用开发-17-套接字
linux·网络·stm32·嵌入式硬件
Msshu1232 小时前
PD快充诱骗芯片 XSP15 支持获取快充电压可与外部MCU共用D+D-网络与电脑传输数据
单片机·嵌入式硬件
brave and determined2 小时前
MCU学习Day24——STM32G030多路ADC DMA采集深度解析:完全可配置序列器与不完全可配置序列器的陷阱与抉择
stm32·单片机·嵌入式硬件·dma·adc·hal·多通道采集
d111111111d3 小时前
通过操作地址,来进行STM32的写入GPIO端口值
stm32·单片机·嵌入式硬件
奔跑吧邓邓子3 小时前
【C语言实战(77)】STM32实战:解锁传感器数据采集的C语言奥秘
c语言·stm32·开发实战·传感器数据采集
小刘爱玩单片机3 小时前
【stm32简单外设篇】- 土壤湿度传感器
c语言·stm32·单片机·嵌入式硬件
晚秋大魔王3 小时前
基于python的jlink单片机自动化批量烧录工具
前端·python·单片机
d111111111d3 小时前
STM32外设学习--TIM定时器--编码器接口
stm32·嵌入式硬件·学习
某林21211 小时前
ROS2与STM32通信详解
stm32·单片机·嵌入式硬件