6-1 STM32定时器介绍

STM32定时器


STM32定时器简介

在这里插入图片描述

最大计数值
50.65S = 1/(72/(2^8*2^8)/(2^8*2^8))
如果觉得计时的时间太短,则定时器的计时还可以联级计时,即多个计时器联合使用,比如两个计时器联级使用,则最大计时时间为:
(50.65s*65536*65536)S

定时器类型

1.定时器类型分类

在这里插入图片描述

2.定时器类型介绍
2.1.基本定时器

在这里插入图片描述

2.1.1 内部时钟

由于基本定时器只能选择内部时钟,所以可以直接认为时基单元的输入端直接连接到内部时钟CK_INT上,内部时钟来源于RCC _TIMxCLK,这里的频率值一般都是系统的主频72MHz,所以通向时基单元的基准频率就是72MHz。

2.1.2 计数部分有三个最重要的的寄存器,他们构成了最基本的计数时钟电路,所以这一块电路也叫时基单元,它们分别是:
  • 预分频器:它可以对上面说的72Mhz的计数时钟进行预分频,比如这个寄存器写0,那就是不分频,或则说是1分频,即此时的输出频率为:
输出频率 = 输入频率/1 = 72MHz

如果预分频器写1,那就是2分频,这输出频率为:

输出频率 = 输入频率/2 = 36MHz

如果写2,那就是3分频,以此类推。预分频数的值与实际的分频系数相差1,即:

实际分频系数=预分频系数+1

因为这个预分频器是16位的,所以最大值可以写65535,也就是65536分频.

  • 计数器:它可以对预分频后的计数时钟进行计数,计数时钟没来一个上升沿,计数器的值就加1,该计数器也是16位的,所以里面的值可以从0一直加到65535,达到最大值再加则回到0重新加,所以计数器的值在计时过程中会不断的自增运行,当自增到目标值时,则会产生中断,那就完成了定时的任务,因此现在需要一个存储目标值的寄存器,那就是下面提到的自动重装寄存器。

  • 自动重装寄存器:该寄存器也是16位的,它存的就是我们写入的计数目标,在运行的过程中,计数值不断自增,自动重装值是固定的目标,当计数值等于自动重装值时,那就是计时时间到了。则其会产生一个中断信号,并且清零计数器。

2.1.3中断产生

在这里插入图片描述

  • 向上的箭头表示更新中断:即计时器和自动重装寄存器的值相等时,则会运行。
  • 向下的箭头表示更新事件:更新时间不会触发中断,但可以触发内部其他电路的工作。
2.1.4主模式触发DAC的功能

这是STM32的一大特色,就是主从触发模式,它能让内部的硬件在不受程序的控制下实现自动运行,在莫些情景下能极大的减轻CPU的负担。使用该模式,即把定时器的更新事件映射到这个触发输出TRGO(Trigger Out)的位置,然后TRGO直接接到DAC的触发转换引脚上,这样,定时器的更新就不需要通过中断来触发DAC转换了。整个过程不需要软件的参与,全是硬件电路的互动。

2.2 通用定时器

在这里插入图片描述

其中中间部分和基本定时器基本是一样的,但此处的计数器的计数模式就不止向上计数这一种了,其还有向下计数和中央对其模式。

  • 向上计数模式:计数器的值向上自增,增到最大值时回到零重新计数。(最常用的)
  • 向下计数模式:计数器的值向下自减,减到0时回到最大值重新自减。
  • 中央对其模式:先向上自增,增到重装值,申请中断,然后在向下自减,减到0,再申请中断。 依次循环。
2.2.1 内外时钟源选择和主从触发模式的结构:

在这里插入图片描述

通用定时器的时钟源不仅可以选择内部的72MHz时钟,还可以选择外部时钟,这写外部时钟有:

  • TIMx_ETR引脚上的外部时钟,该ETR(External)引脚的位置,可以参考下表:

在这里插入图片描述

这里的TIM2_CH1 _ETR,意思是这个TIM2的CH1和ETR都复用到了这个位置,也就是PA0引脚,这里我们可以通过该引脚接一个外部方波时钟,然后配置内部的极性选择,边沿检测和预分频器电路在配置一下滤波电路(这两块电路可以对外部时钟进行一定的整形,因为外部引脚的时钟难免会有一些毛刺),滤波后的型号分别ETRF进入触发控制器,就可以作为时基单元的时钟了

  • TRGI(Trigger In)提供时钟,主要是用作触发输入来使用,可以触发定时器的从模式,这里主要说明该触发输入作为外部时钟来使用的情况,暂且可以把该TRGI当做外部时钟的输入来看,当其作为外部时钟来使用时,这一路称为“外部时钟模式1”

在这里插入图片描述

TRGI的输入有下面几个输入:

在这里插入图片描述

第一个就是ETR引脚的信号,ETR即可以通过上面一路来当作时钟,也可以通过下面一路。两者对时钟输入而言是等价的,只是下面一路会占用触发输入的通道。

第二个就是ITR信号,这一部分的时钟信号来源于其他定时器,可以通过TRGO至其他定时器,而ITR0-ITR3与这些定时器的输出连接参照下表:
在这里插入图片描述

即TIM2的ITR0是接到了TIM1的TRGO上的,ITR1接到了TIM8……通过这一路我们就可以通过定时器的级联的功能,如:我们可以先初始化TIM3,然后使用主模式把其更新事件映射到TRGO上,接着再初始化TIM2,这里选择ITR2,对应的就是TIM3的TRGO,然后在选择时钟为外部时钟模式1,这样TIM3的更新事件就可以驱动TIM2的时基单元。实现了定时器的级联。

第三个TI1F_ED(ED(Edge)是边沿的意思)该处连接的是输入捕获单元的CH1引脚,即从该引脚获得时钟,上升沿下降沿均有效。

第四个还可以通过TI1FP1和TI2FP2获得:
在这里插入图片描述

总结:外部模式1的输入可以是ETR引脚,其他定时器(用于定时器的级联),CH1引脚边沿,CH1引脚和CH2引脚(这三个都用于输入捕获和测频率)。对于输入时钟而言,最常用的还是内部的72MHz的时钟,如果要使用外部输入的时钟,首选ETR引脚外部时钟模式2的输入,该路最简单,最直接。
高级定时器

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-H25zIPnW-1643253804191)(https://note.youdao.com/yws/res/a/WEBRESOURCEb0ef84b2a2cd2721b3d72c6c524a2d5a)]

后面增加的输出比较模块输出互补的PWM波用于驱动三相无刷电机。

还有刹车功能,即外部引脚TIMx_BKIN产生了刹车信号,或者内部时钟失效产生故障,则控制电路就会自动切断电机的输出,防止意外的发生。

  • 8
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值