STM32定时器

前言:如上图定时器控制分为6个部分:

①时钟源
②触发控制器
③时基单元
④输入捕获模块
⑤输出比较模块
⑥断路功能。

一:时钟源

可以来自
①_1:内部时钟
①_2:外部时钟模式1

1_时钟输入引脚TIMx_CH1/2/3/4 ---->2_滤波—>3_边沿检测—>4_触发选择–>5从模式选择(选定了触发源信号后,信号是默认接到 TRGO 引脚的,需要让触发信号成为外部时钟模式 1 的输入,即为 CK_PSC提供给时基控制器)

STM32定时器
①_3:外部时钟模式2

1_时钟输入引脚 ---->2_外部触发极性—>3_分频器—>4_滤波器–>5从模式选择(选定了触发源信号后,信号是默认接到 TRGO 引脚的,需要让触发信号成为外部时钟模式 1 的输入,即为 CK_PSC提供给时基控制器)

STM32定时器

其实就是:STM32定时器
①_4:内部触发模式
STM32定时器

二:控制器

STM32定时器
高级控制定时器控制器部分包括触发控制器、从模式控制器以及编码器接口。触发控制器用来针对片内外设输出触发信号,比如为其它定时器提供时钟和触发DAC/ADC 转换。编码器接口专门针对编码器计数而设计。从模式控制器可以控制计数器复位、启动、递增/递减、计数。

总结:上面是讲时钟源和控制器的原理框图。功能和强大很厉害。可以接内部时钟源接外部时钟源,可以级联,介绍了这么多,实际上真正用到的
第一步:设置内部是时钟为时钟源
第二步:设置定时器的计数方式,启动或者复位。
STM32定时器
一直以来被框图中 捕获功能引脚和时钟源连在一起所干扰。其实没用过外部引脚做计数器时钟的。
含义只是表达,可以用该引脚引入外部时钟源。

三:时基单元

触发控制器设定了计数器计数方向。
时基单元主要包括:
计数器寄存器 (TIMx_CNT)
预分频器寄存器(TIMx_PSC)将计数时钟源 1~65535 之间任意值频率分割。作为计数器的时钟
自动装载寄存器(TIMx_ARR)
重复次数寄存器(TIMx_RCR)

四:输入捕获

what 输入捕获:
STM32定时器

如上图:使用输入捕获模式可以实现测量频率。如图 3-8,当捕获通道 TIx 出现上升 沿时,发生第一次捕获,计数器 CNT的值会被锁存到捕获寄存器 CCR 中,进入 捕获中断,在中断服务程序中记录一次捕获(可以用一个标志变量来记录),并 把捕获寄存器中的值读到value1 中。当出现第二次上升沿时,发生第二次捕获, 计数器 CNT 的值会再次被锁存到捕获寄存器 CCR 中,并再次进入捕获中断,在中断中,将捕获寄存器的值读取到 value3 中,并清除捕获记录标志。此时,利用 value1 和 value3的差值我们就可以算出信号的周期。

起始就是从TIMx_CH1,2,3,4 输入经过滤波电平转化 分频 后 接入捕获寄存器。
STM32定时器

STM32定时器

PWM输入模式(输入捕获特例)
STM32定时器

我们看 PWM 的时序图,如图 3-10,PWM 信号由 TI1 进入,配置 TI1FP1 为 触发信号,上升沿捕获。当上升沿的时候 IC1和 IC2 同时捕获,计数器 CNT 清零, 到了下降沿的时候,IC2 捕获,此时计数器 CNT 的值被锁存到捕获寄存器 CCR2 中,到了下一个上升沿的时候,IC1 捕获,计数器 CNT 的值被锁存到捕获寄存器 CCR1 中。其中 CCR2 测量的是脉宽,CCR1测量的是周期。 可以看到,使用 PWM 输入模式测量脉宽和周期更加的容易,但是需要用到 两个捕获寄存器。

四:输出比较

常用此模式来控制一个输出波形,或者指示一段给定的时间已经到时。
当计数值为比较/捕获寄存器值相同时” 即CCRX=CNT;这时候会触发。可以触发一个中断,或者连接到引脚上去。

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-10-26
  • 2022-01-07
  • 2021-07-24
  • 2021-11-15
  • 2021-10-09
  • 2022-01-13
猜你喜欢
  • 2021-12-02
  • 2022-12-23
  • 2022-12-23
  • 2021-07-11
  • 2022-01-01
相关资源
相似解决方案