当前位置: 首页 > news >正文

TIM 更新事件软件触发场景

TIM更新事件的产生有两种情况,一是由软件产生,将TIMx_EGR寄存器的
UG1,产生更新事件后,硬件会自动将UG位清零。二是由硬件产生,满足以下条件即
可:计数器(TIMx_CNT)的值等于自动重装载寄存器影子寄存器的值

下面结合STM32实际开发场景,分场景讲什么时候必须用软件触发更新事件(写EGR.UG),每个场景配实操例子,很好理解。

1. 改了PSC预分频、ARR自动重装,想立刻生效

TIM的PSC、ARR都带影子寄存器,默认只有硬件溢出才会更新参数。

  • 不写UG:改完ARR/PSC,要等计数器走完当前周期,新频率/周期才生效;

  • 写UG软件更新:参数马上载入影子,波形瞬间切换。

例子: 电机调速、LED呼吸灯动态改频率,不想等一整个周期延迟,改完ARR立刻TIMx->EGR |= TIM_EGR_UG;

2. 定时器刚初始化,上电统一同步所有影子寄存器

初始化TIM后直接开计数,CNT、PSC、CCR影子寄存器状态不一致,第一波波形容易异常。 初始化末尾手动触发一次UG:

  • CNT计数器清零

  • PSC、ARR、所有CCR捕获比较寄存器同步更新 保证上电第一周期波形就正确,无毛刺。

3. 运行中修改PWM占空比,立刻刷新波形

CCR寄存器同样影子缓冲,默认溢出才更新。 比如舵机、电机FOC、调光,实时调节CCR:

TIM_SetCompare1(TIM1, new_ccr); TIM1->EGR |= TIM_EGR_UG; // 立刻更新占空比,不用等溢出

4. 需要随时清零计数器CNT(编码器、脉冲计数)

编码器模式、外部脉冲计数模式: 想中途重置计数值,不用等到计数溢出,直接软件UG,CNT马上清零。 适用:限位归零、分段计数、每次采样复位计数。

5. 主动触发更新中断,不用等溢出

开启更新中断UIE后,置UG会直接进更新中断服务函数。 适用场景:

  • 单次定时校准、采样复位;

  • 按键触发一次定时任务,不用等定时器走完周期;

  • 调试时手动进中断测试逻辑。

6. 主从定时器同步,手动统一对齐多路定时器

多TIM主从同步(多路PWM、多路同步采样): 正常靠主定时器硬件溢出同步,若中途需要重新对齐所有定时器,在主TIM软件触发UG,同步信号一次性发给所有从定时器,多路CNT同时清零同步。

7. DMA搬运TIM参数,同步刷新DMA缓冲区

用DMA循环更新ARR/CCR做渐变灯光、阶梯波形时,DMA更新完缓冲区后,软件触发UG,让硬件立刻加载DMA新值,保证波形连贯无跳变。

极简总结使用场景

  1. 动态改频率、分频、PWM占空比,需要立即生效

  2. 定时器初始化收尾,同步所有寄存器影子;

  3. 编码器/脉冲计数,随时清零CNT

  4. 手动触发一次更新中断,执行单次任务;

  5. 多路定时器主从同步、重新对齐;

  6. DMA配合定时器动态输出波形同步刷新。

反过来:如果不需要立刻更新参数、不需要中途清零计数器,只靠定时器自然溢出工作,就完全不用软件触发UG。

http://www.gsyq.cn/news/1602724.html

相关文章:

  • 超级简单好用的C语言Log日志库!!(附代码库下载链接)
  • 语音修复终极指南:用AI技术让模糊语音重获新生
  • 鸿蒙 ArkTS 实战:Moving Box Manager 从状态建模到交互闭环完整解析
  • 数据科学与大数据技术毕业设计本科生方向推荐
  • 如何15分钟完成专业级黑苹果EFI配置:OpCore-Simplify让复杂变简单
  • 高级自定义技巧:MeEdu在线教育系统核心功能深度解析
  • 鸿蒙 ArkTS 实战:Knowledge Tree 从状态建模到交互闭环完整解析
  • Three.js 程序化地形生成教程
  • TPA2025D1 D类音频功放评估板实战:从核心原理到PCB布局设计
  • MSP430 Timer_B捕获比较与UART通信实战:从寄存器到低功耗频率计
  • QQ音乐解析终极指南:三步解锁全网音乐资源
  • 上海小程序定制开发公司,哪家售后服务比较靠谱?
  • 国产高速数字化仪PCIe-7964R FPGA板卡(250M/16bit:4AI+2AO)兼容LabVIEW FPGA软件开发
  • 老中医如何用AI学好五运六气——天辛大师谈实用技巧
  • QuantConnect Lean算法交易引擎:5步打造你的第一个量化交易策略
  • 7th [math] 2026.06.28
  • 从零到一:Awesome-Dify-Workflow如何解决AI工作流开发难题
  • TI Dolphin FHSS无线UART开发套件:从硬件设计到协议优化的完整指南
  • Visual Studio 上快速搭建 LittleVGL 模拟器开发环境
  • 鸿蒙 ArkTS 实战:Mental Math Trainer 从状态建模到交互闭环完整解析
  • Day9 |删除链表倒数第N个节点 相交链表
  • 技术突破:Python实现QQ音乐API数据解析与资源获取方案
  • 卤水点豆腐和胶体聚沉之间的关系
  • 鸿蒙 ArkTS 实战:Recitation Timer 从状态建模到交互闭环完整解析
  • 5个理由选择FreeShip Plus:零成本专业船舶设计完全指南
  • ComfyUI-Impact-Pack终极指南:5个技巧让AI图像细节清晰如镜
  • NifSkope深度解析:游戏文件编辑架构与扩展开发最佳实践
  • ComfyUI BrushNet图像修复工作流终极配置指南:5个常见错误与解决方案
  • shader开发工具
  • 告别“more than one device/emulator”困扰:精准定位与高效调试指南