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

STM32F407 定时器

1、定时器分类

1.1、高级控制定时器(TIM1,TIM8)

  • 特点:支持 PWM 互补输出、死区插入、刹车功能、编码器接口等,适用于电机控制。
  • 典型场景:三相无刷电机驱动(带死区保护)。

 

1.2、通用控制定时器(TIM2-TIM5,TIM9-TIM14)

  • 特点:支持输入捕获、输出比较、PWM生成、编码器接口。
  • 典型场景:LED 亮度调节(PWM 输出)。 

1.3、基本定时器(TIM6,TIM7)

  • 特点:仅支持定时中断和 DAC 触发,无外部 IO 功能。
  • 典型场景:周期性系统心跳(如 1ms 定时中断)。 

2、高级控制定时器

2.1、简介

        包含一个 16 位自动重载计数器,该计数器由可编程预分频器驱动。使用定时器预分频器和 RCC 时钟控制器预分频器,可将脉冲宽度和波形周期从几微秒调制到几毫秒。高级控制定时器(TIM1 和 TIM8)和通用 (TIMx) 定时器彼此完全独立,不共享任何资源。 

        高级控制定时器部分框图:

  

2.2、时基单元         

        可编程高级控制定时器的主要模块是一个 16 位计数器及其相关的自动重载寄存器。计数器可递增计数、递减计数或交替进行递增和递减计数。计数器的时钟可通过预分频器进行分频。计数器、自动重载寄存器和预分频器寄存器可通过软件进行读写。即使在计数器运行时也可执行读写操作。

        时基单元包括:

  • 计数器寄存器 (TIMx_CNT)
  • 预分频器寄存器 (TIMx_PSC)
  • 自动重载寄存器 (TIMx_ARR)
  • 重复计数器寄存器 (TIMx_RCR)

2.3、计数器模式

2.3.1、 递增计数模式

        在递增计数模式下,计数器从 0 计数到自动重载值(TIMx_ARR 寄存器的内容),然后重新从 0 开始计数并生成计数器上溢事件。

        如果使用重复计数器,则当递增计数的重复次数达到重复计数器寄存器中编程的次数加一次(TIMx_RCR+1) 后,将生成更新事件 (UEV)。否则,将在每次计数器上溢时产生更新事件。将 TIMx_EGR 寄存器的 UG 位置 1(通过软件或使用从模式控制器)时,也将产生更新事件。

        下图是计数器时序图:

2.3.2、递减计数模式

        在递减计数模式下,计数器从自动重载值( TIMx_ARR 寄存器的内容)开始递减计数到 0,然后重新从自动重载值开始计数并生成计数器下溢事件。

        如果使用重复计数器,则当递减计数的重复次数达到重复计数器寄存器中编程的次数加一次(TIMx_RCR+1) 后,将生成更新事件 (UEV)。否则,将在每次计数器下溢时产生更新事件。将 TIMx_EGR 寄存器的 UG 位置 1(通过软件或使用从模式控制器)时,也将产生更新事件。

         下面是计数器时序图:

2.3.3、中心对齐模式(递增/递减计数)

        在中心对齐模式下,计数器从 0 开始计数到自动重载值(TIMx_ARR 寄存器的内容) - 1,生成计数器上溢事件;然后从自动重载值开始向下计数到 1 并生成计数器下溢事件。之后从0 开始重新计数。
        当 TIMx_CR1 寄存器中的 CMS 位不为“00”时,中心对齐模式有效。将通道配置为输出模式时,其输出比较中断标志将在以下模式下置 1,即:计数器递减计数(中心对齐模式 1, CMS =“01”)、计数器递增计数(中心对齐模式 2, CMS =“10”)以及计数器递增/递减计数(中心对齐模式 3, CMS =“11”)。

        在此模式下, TIMx_CR1 寄存器的 DIR 方向位不可写入值,而是由硬件更新并指示当前计数器方向。每次发生计数器上溢和下溢时都会生成更新事件,或将 TIMx_EGR 寄存器中的 UG 位置 1 (通过软件或使用从模式控制器)也可以生成更新事件。这种情况下,计数器以及预分频器计数器将重新从 0 开始计数。

        下图是计数器时序图:

相关文章:

  • 第九课:异步爬虫进阶:aiohttp与多线程的技术博客
  • 【Java 和 Scala】-- Java 与 Scala 的 Assert 断言对比
  • AI Agent系列(四) -Agent架构认知
  • 【ODHead】BEVDet的 CenterHead的推理和拓展到蒸馏损失的算法细节
  • java后端开发day31--集合进阶(一)-----Collection集合List集合数据结构1
  • Hive SQL 精进系列:字符串拼接的三种常用方式
  • 【WRF-Chem】预处理工具(Preprocessors)总结
  • es-索引详解
  • 论文笔记 - ULTRA-SPARSE MEMORY NETWORK
  • 解决:外部调用存储过程时突然变慢,但是在sql server运行很快
  • ios打包需要的证书及步骤
  • flutter dio库 源码赏析
  • Java继承机制深度解析:子类如何继承父类及内存原理解析
  • 《A Gentle Introduction to Graph Neural Networks》-GNN的综述性论文
  • 玩转python:掌握Python数据结构之Trie树
  • Django部署Filemanagement
  • Next.js介绍(React框架)
  • 32- 两数之和 II - 输入有序数组
  • AutoGen学习笔记系列(十四)Advanced - Serializing Components
  • OpenSSL 的主要功能及其示例命令
  • 新修订的《婚姻登记条例》明起施行,领证不用户口本了
  • 海关总署统计分析司司长:4月进出口增速较一季度加快4.3个百分点
  • 习近平同瑞典国王卡尔十六世·古斯塔夫就中瑞建交75周年互致贺电
  • 新华每日电讯:给“男性妇科病论文”开一剂复方药
  • 独家丨刘家琨获普利兹克奖感言:守护原始的感悟力
  • 洛杉矶奥组委确认2028年奥运会和残奥会开闭幕式场地