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


相关推荐
DIY机器人工房1 小时前
[9-2] USART串口外设 江协科技学习笔记(9个知识点)
笔记·科技·stm32·单片机·学习·江协科技
wh_xia_jun2 小时前
通过mqtt 发布温湿度
单片机
敬往事一杯酒哈3 小时前
第一节 51单片机概述
单片机·嵌入式硬件·51单片机
小智学长 | 嵌入式7 小时前
SOC-ESP32S3部分:22-分区表
开发语言·单片机·esp32
小宋同学在不断学习7 小时前
STM32 串口通信①:USART 全面理解 + 代码详解
stm32·单片机·嵌入式硬件
百里东风8 小时前
STM32CubeMX定时器配置
stm32·单片机·嵌入式硬件
长流小哥9 小时前
STM32:ESP8266 + MQTT 云端与报文全解析
stm32·单片机·物联网·mqtt
想搞嵌入式的小白11 小时前
硬件I2C和软件I2C的区别
stm32·单片机·嵌入式硬件
HelloTonyGo11 小时前
在MDK中自动部署LVGL,在stm32f407ZGT6移植LVGL-8.3,运行demo,显示label
stm32·嵌入式硬件·lvgl
apolloyhl12 小时前
1-Wire 一线式总线:从原理到实战,玩转 DS18B20 温度采集
arm开发·stm32·单片机·嵌入式硬件