STM32定时器进阶:从模式控制器完全指南,一文学会TRGI/TRGO---STM32 HAL库专栏

🎬 渡水无言个人主页渡水无言

专栏传送门 : 《linux专栏》《嵌入式linux驱动开发》《linux系统移植专栏》

专栏传送门 : 《freertos专栏》 《STM32 HAL库专栏》《linux裸机开发专栏

专栏传送门《产品测评专栏

⭐️流水不争先,争的是滔滔不绝

📚博主简介:第二十届中国研究生电子设计竞赛全国二等奖 |国家奖学金 | 省级三好学生

| 省级优秀毕业生获得者 | csdn新星杯TOP18 | 半导纵横专栏博主 | 211在读研究生

在这里主要分享自己学习的linux嵌入式领域知识;有分享错误或者不足的地方欢迎大佬指导,也欢迎各位大佬互相三连

目录

前言

一、从模式控制器概述

[1.1 基本概念](#1.1 基本概念)

[1.2 核心接口:TRGI 与 TRGO](#1.2 核心接口:TRGI 与 TRGO)

[1.3 主要功能与价值](#1.3 主要功能与价值)

二、八种从模式详解(作为从机)

[2.1 从模式禁止(Disabled)](#2.1 从模式禁止(Disabled))

2.2、复位模式

[2.3 编码器模式](#2.3 编码器模式)

2.4、触发模式

[2.5、外部时钟模式1(External Clock Mode 1)](#2.5、外部时钟模式1(External Clock Mode 1))

[2.6、外部时钟模式2(External Clock Mode 2)](#2.6、外部时钟模式2(External Clock Mode 2))

2.7、门控模式

[2.8 从模式总结对比](#2.8 从模式总结对比)

三、主模式(作为主机)详解

[3.1 使能模式(Enable)](#3.1 使能模式(Enable))

[3.2 更新模式(Update)](#3.2 更新模式(Update))

3.3、其他主模式(补充)

总结


前言

在前几期的博客中,我们系统学习了定时器的时基单元、输出比较、PWM生成、输入捕获等核心功能。这些都是定时器的独立工作模式------一个定时器单独完成任务。

但在实际项目中,往往需要多个定时器协同工作,或者需要定时器与ADC、DAC等外设精确同步。这时就需要用到定时器的从模式控制器

本期我们就来深入探讨这个强大但容易被忽视的功能,带你彻底搞懂TRGI、TRGO以及八种从模式。


一、从模式控制器概述

1.1 基本概念

从模式控制器(Slave Mode Controller) 是STM32通用/高级定时器中的一个核心控制模块,位于定时器架构的"控制层",负责接收外部或内部触发信号,并据此控制时基单元(CNT、PSC、ARR)的行为。如下图所示:

简单来说,它实现了定时器的**"受控"功能**,使定时器能够响应外部事件或与其他外设协同工作。

1.2 核心接口:TRGI 与 TRGO

定时器通过两个关键接口实现内外通信:

接口 全称 方向 功能类比 说明
TRGI Trigger Input 输入 📺 红外接收头 接收来自其他定时器、GPIO、ADC等的触发信号
TRGO Trigger Output 输出 🎮 红外遥控器 向其他定时器、ADC、DAC等外设发送触发信号

如下图所示:

双向控制能力:

输入控制:通过TRGI接收信号 → 控制本定时器的时基单元(CNT启停、清零、复位等)

输出控制:通过TRGO发送信号 → 控制其他外设(如启动ADC转换、触发另一个定时器等)

1.3 主要功能与价值

功能 说明 应用价值
模块间同步 多个定时器、ADC、DAC精确时序协同 多相PWM、同步采样
外部事件响应 根据外部信号启动或停止计数 按键触发、传感器触发
级联计数 多个定时器串联实现超长时间定时 电子表、长时间延时
降低CPU负载 硬件自动触发,无需软件干预 提高系统效率

二、八种从模式详解(作为从机)

从模式决定了TRGI输入信号如何影响时基单元。下面逐一介绍这八种模式。

序号 模式选项 英文名称 功能描述 典型应用
1 从模式禁止 Slave Mode disable 禁用从模式,TRGI信号被忽略,定时器独立运行 默认状态,不需要外部同步的独立定时任务
2 编码器模式1 Encoder Mode 1 正交编码器模式I,仅TI1作为计数源,TI2作为方向 电机转速测量、旋钮位置检测(单倍频)
3 编码器模式2 Encoder Mode 2 正交编码器模式II,仅TI2作为计数源,TI1作为方向 电机转速测量、旋钮位置检测(单倍频)
4 编码器模式3 Encoder Mode 3 正交编码器模式III,TI1和TI2同时作为计数源 高精度电机测速(四倍频,精度最高)
5 复位模式 Reset Mode TRGI上升沿触发时,立即清零计数器CNT 外部同步清零、脉宽测量周期同步
6 门模式 Gated Mode TRGI高电平时允许计数,低电平时停止计数 门控测频、条件计数、受控PWM输出
7 触发模式 Trigger Mode TRGI上升沿触发启动计数器,触发后持续运行 外部事件触发单次定时、延时启动
8 外部时钟模式1 External Clock Mode 1 将TRGI信号作为时基单元的时钟源 对外部脉冲计数、定时器级联

2.1 从模式禁止(Disabled)

功能:禁用从模式,TRGI信号被忽略。

效果:定时器完全由内部时钟驱动,独立运行。

应用场景:

默认状态。

不需要外部同步的独立定时任务。

配置代码:

cpp 复制代码
TIM_SelectSlaveMode(TIMx, TIM_SlaveMode_Disable);

2.2、复位模式

触发条件:TRGI输入上升沿。

动作:立即清零计数器CNT(可选择清除预分频器)。

2.3 编码器模式

功能:将定时器配置为正交编码器接口。

作用:测量旋转编码器的转速和方向。

工作原理:

使用两个输入通道(TI1、TI2)接收A/B相信号。

根据相位差判断旋转方向(正转/反转)。

CNT值反映累计转角。

三种模式区别:

模式 计数源 方向判断 特点
Mode I TI1计数,TI2方向 TI2电平决定方向 单倍频
Mode II TI2计数,TI1方向 TI1电平决定方向 单倍频
Mode III 两者都计数 两者共同判断 四倍频,精度最高

应用场景:

电机转速测量。

旋钮位置检测。

机器人关节角度反馈。

2.4、触发模式

触发条件:TRGI输入上升沿。

动作:启动计数器(开始向上计数)。

特点:

一次性触发,不维持状态。

触发后计数器持续运行,直到溢出或被停止。

与门控模式的区别:

模式 触发方式 计数状态
门控模式 电平控制 电平高则计数,低则停止
触发模式 边沿触发 触发一次后一直计数

2.5、外部时钟模式1(External Clock Mode 1)

功能:将TRGI信号作为时基单元的时钟源,替代内部时钟。

工作原理:

PSC = 0时,每个TRGI脉冲使CNT加1。

可结合PSC进行分频。

应用场景:

对外部脉冲信号进行计数(如转速计)。

实现定时器级联(如电子表)。

外部事件计数。

信号来源:

GPIO外部引脚。

其他定时器的TRGO。

ETR引脚。

具体如下图所示:

2.6、外部时钟模式2(External Clock Mode 2)

功能:使用ETR引脚作为外部时钟源。

特点:独立于TI1/TI2通道,常用于高频外部时钟输入。

配置函数如下:

cpp 复制代码
TIM_SelectInputTrigger(TIMx, TIM_TS_ETRF);
TIM_SelectSlaveMode(TIMx, TIM_SlaveMode_External1);

2.7、门控模式

控制逻辑:

TRGI = 高电平:计数器允许计数。

TRGI = 低电平:计数器停止计数(保持当前值)。

2.8 从模式总结对比

从模式 触发方式 主要作用 典型应用
从模式禁止 独立运行 默认状态
编码器模式 正交信号 编码器解码 电机测速
复位模式 上升沿 计数器清零 同步复位
门模式 电平 使能计数 门控测频
触发模式 上升沿 启动计数 单次触发
外部时钟模式1 脉冲 外部时钟 脉冲计数
外部时钟模式2 ETR脉冲 高频时钟 外部同步

三、主模式(作为主机)详解

主模式决定了在何种条件下通过TRGO输出触发信号。

3.1 使能模式(Enable)

输出逻辑:

定时器运行中 → TRGO输出高电平 。

定时器停止 → TRGO输出低电平。

功能: 状态指示信号

应用场景:

控制其他从定时器的门控模式。

指示系统工作状态。

3.2 更新模式(Update)

触发条件:发生更新事件(UEV)

计数器溢出(向上计数到ARR)。

计数器归零(向下计数到0)。

手动调用TIM_GenerateEvent()。

3.3、其他主模式(补充)

序号 模式选项 英文名称 触发条件 输出信号 典型应用
1 复位 Reset 定时器复位事件发生时 TRGO输出脉冲 同步复位其他从定时器
2 使能 Enable 定时器使能/运行时 TRGO输出高电平(运行)/低电平(停止) 控制其他从定时器的门控模式、状态指示
3 更新 Update 发生更新事件(UEV)时 TRGO输出短脉冲 触发ADC周期性采样、定时器级联计数
4 输出比较脉冲 Compare Pulse 输出比较匹配时 TRGO输出脉冲 精确时间点触发、PWM同步
5 输出比较参考信号1 Compare OC1Ref OC1REF信号变化时 TRGO跟随OC1REF 通道1的PWM同步信号输出
6 输出比较参考信号2 Compare OC2Ref OC2REF信号变化时 TRGO跟随OC2REF 通道2的PWM同步信号输出
7 输出比较参考信号3 Compare OC3Ref OC3REF信号变化时 TRGO跟随OC3REF 通道3的PWM同步信号输出
8 输出比较参考信号4 Compare OC4Ref OC4REF信号变化时 TRGO跟随OC4REF 通道4的PWM同步信号输出

总结

本期博客深入剖析了STM32定时器的从模式控制器 ,这个常被忽视却极为强大的功能模块。通过理解TRGI (输入触发)和TRGO(输出触发)这对核心接口,我们掌握了定时器如何作为"从机"接收外部信号控制自身行为,以及如何作为"主机"向其他外设发送同步信号。八种从模式(从模式禁止、编码器模式、复位模式、门模式、触发模式、外部时钟模式1/2)和多种主模式(复位、使能、更新、输出比较脉冲等)为多定时器协同、外设同步、级联计数等复杂应用提供了硬件级的解决方案。

相关推荐
鲨辣椒100863 小时前
单片机在线演绎《当幸福来敲门》------ 中断机制
单片机·嵌入式硬件
鲨辣椒100866 小时前
51单片机初相识
单片机·嵌入式硬件·51单片机
独处东汉7 小时前
freertos开发空气检测仪之完结_Air_check_App 工程概览与使用说明
stm32·单片机·嵌入式硬件·freertos
爱喝纯牛奶的柠檬9 小时前
基于STM32的4*4矩阵软键盘驱动
stm32·嵌入式硬件·矩阵
电子工程师成长日记-C519 小时前
51单片机低频信号发生器
单片机·嵌入式硬件·51单片机
望酹江月9 小时前
HNU-RFID与传感器原理实验
c语言·单片机
GodKK老神灭9 小时前
FOC中PLL的点乘法
单片机
逐步前行10 小时前
STM32_DMA_寄存器操作
stm32·单片机·嵌入式硬件
Hello World . .12 小时前
51单片机基础外设:中断、定时器/计数器(PWM控制蜂鸣器、电机)
单片机·嵌入式硬件·51单片机