STM32 的定时器除了使用内部时钟(来自 APB1/APB2 总线)进行计数,还可以使用外部信号源作为时钟输入,实现更丰富的控制功能。本文基于图示,解析常见的外部时钟模式及其输入路径。
外部时钟模式概览
STM32 定时器支持以下几种外部时钟输入模式:
图示结构分解
我们从图中识别出主要的组成模块和信号路径,按模块进行讲解:
内部时钟: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)
用于设置定时器的响应方式,有如下几种模式:
与 CNT 计数器的关系
触发控制器和从模式控制器共同决定 计数器的计数时机与频率。
若触发信号为外部输入(TI1/ETR),则计数器受控于外部脉冲;
配合自动重装载寄存器(ARR)和中断机制,可实现外部驱动的复杂控制。
应用场景举例
外部频率测量
外部信号输入 TI1;
设置为外部时钟模式 1;
定时器开始计数,读取 CNT 即得脉冲数。
外部脉冲控制 PWM 输出
外部脉冲输入通过 ETR;
配置为外部时钟模式 2;
每个外部脉冲触发一次定时器 PWM 更新。
总结
STM32 的外部时钟模式灵活强大,配合触发控制器与从模式控制器,可实现:
精准的外部信号控制
外部频率/事件测量
多定时器同步操作
外设输入与定时器联动
掌握 ETx、TIx、TRGI 的传递逻辑是理解定时器高级应用的关键。
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/hallo_zz/article/details/147669932
|