[应用相关] STM32定时器的复位事件与更新事件

[复制链接]
417|0
Jiangxiaopi 发表于 2025-11-9 18:16 | 显示全部楼层 |阅读模式
在 STM32 微控制器的 定时器(TIM,Timer) 模块中,复位事件(Reset Event / Counter Reset) 和 更新事件(Update Event / UEV, Update Interrupt) 都是与 定时器计数器行为 相关的重要概念,但它们有着 完全不同的含义和作用。

一、基本概念对比

92118690d5ffc7d6ea.png

二、详细解释

1. 更新事件(Update Event, UEV)

定义:
更新事件是指定时器内部状态的一种“更新”动作,通常发生在以下情况之一:

计数器溢出(向上计数时达到 ARR,或向下计数时达到 0)
软件手动触发更新(设置 TIMx_EGR 寄存器的 UG 位)
从模式下的某些触发事件(如复位模式下收到触发信号)
预分频器(PSC)值被更新(但只有在特定配置下才产生更新事件)

结果:
当发生 更新事件 时,定时器会执行以下操作:

计数器 CNT 重新加载(如溢出后归零)
自动重装载寄存器 ARR 的影子寄存器更新到当前值(如果 URS 未屏蔽)
预分频器 PSC 的新值生效(如果配置允许)
可以产生中断(UIE)或 DMA 请求(UDE)

相关寄存器:
TIMx_CR1 寄存器
URS(Update Request Source):选择何种事件产生更新(比如仅溢出,不包括软件触发)
UDIS(Update Disable):禁止更新事件(用于防止中断/DMA,但计数器仍会更新)
TIMx_CR2 寄存器(从模式相关)
TIMx_EGR 寄存器
UG(Update Generation):软件主动产生一个更新事件(手动触发更新)

应用场景:
定时中断(比如每隔 1ms 进入一次中断)
PWM 周期控制(ARR 决定周期,更新事件标志一个周期结束)
定时器同步(多个定时器基于更新对齐)
配合 DMA 周期性搬运数据

2. 复位事件(Reset / Counter Reset)

定义:
复位事件是指将定时器的计数器 CNT 直接清零 的行为或事件。它通常不是定时器正常运行时自动发生的,而是 由特定条件触发,例如:

从模式(Slave Mode)配置为 “Reset Mode” 时,收到触发信号(TRGI)后,计数器被强制清零
某些定时器工作在输入捕获模式下,配置为复位模式(Reset on Trigger)
某些特殊定时器功能或外部硬件逻辑导致计数器被复位

结果:
计数器 CNT 被强制设置为 0
可能会同时产生更新事件(视具体配置而定)
但复位本身并不一定触发中断或 DMA,除非更新事件被使能

相关配置(常见于从模式):
TIMx_SMCR(Slave Mode Control Register)
SMS[2:0]:从模式选择
SMS = 100:复位模式(Reset Mode)
当检测到触发输入(TRGI)有效时,计数器 CNT 被强制清零,并且从触发边沿开始重新计数

TS[2:0]:触发源选择(选择哪个信号作为 TRGI)
MSM:主/从同步模式

应用场景:
输入捕获复位模式:在输入信号(如脉冲)的 上升沿将计数器清零并开始计时,用于精确测量脉宽/周期
多个定时器同步:一个定时器触发另一个定时器复位,实现同步启动
精确定时启动:在某个外部事件到来时,计数器从 0 开始重新计时
三、关键区别总结

1679690d5fdbe7202.png

四、图形化理解(简化)

更新事件(Update Event):
计数器运行:0 → 1 → 2 → ... → ARR → 0(溢出)
                     ↓
              【更新事件发生】
              可能触发中断/DMA
              寄存器(ARR、PSC等)影子寄存器更新



复位事件(Reset Event):
外部触发信号 ↑
               ↓
        【计数器被强制清零:CNT = 0】
        (比如在输入捕获复位模式下,检测到输入脉冲时计数器归零)


五、实际应用中的例子

更新事件的应用举例:
使用 TIM2 定时器,ARR=1000,PSC合适,向上计数,每 1ms 溢出一次 → 产生 更新事件 → 进入中断,实现 1ms 定时
PWM 模式下,ARR 决定周期,更新事件标志一个 PWM 周期结束

复位事件的应用举例:
输入捕获模式 + 复位模式(SMS=100):当检测到输入信号(如霍尔传感器、编码器脉冲)的 上升沿时,计数器清零并开始计时,用于测量该信号的 周期或占空比
多个定时器同步启动:TIM1 的 TRGO 信号触发 TIM2 的复位,让 TIM2 从 0 开始与 TIM1 同步
六、总结

61603690d5fbf23d14.png

————————————————
版权声明:本文为CSDN博主「zhmc」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_42963788/article/details/153772860

您需要登录后才可以回帖 登录 | 注册

本版积分规则

71

主题

300

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部