stm32定时器

TIM(定时器)简介

        定时器可以对输入的时钟进行计数,并在计数值达到设定值时触发中断;

        16位计数器、预分频器、自动重装寄存器的时基单元,在72MHz计数时钟下可以实现最大59.65s的定时;

        不仅具备基本的定时中断功能,而且还包含内外时钟源选择、输入捕获、输出比较、编码器接口、主从触发模式等多种功能;

         根据复杂度和应用场景分为了高级定时器、通用定时器、基本定时器三种类型;

定时器类型:

STM32F103C8T6定时器资源:TIM1、TIM2、TIM3、TIM4

基本定时器:

        预分频器、计数器和自动重装寄存器三个寄存器构成了最基本的计数计时电路,所以这一块就叫做时基单元。

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

        预分频器可以对这个72MHz的计数时钟进行预分频。比如这个寄存器写0,那就是不分频或者说是1分频,这时输出频率 = 输入频率 = 72MHz;如果预分频器写1,那就是2分频,输出频率 = 输入频率 / 2 = 36MHz。以此类推,所以预分频器的值和实际的分频系数相差了1,即实际分频系数 = 预分频器的值 + 1。这个预分频器是16位,所以最大值可以写65535,也就是65536分频。

        计数器可以对预分频后的计数时钟进行计数,计数时钟每来一个上升沿,计数器的值就加1,计数器也是16位,所以里面的值可以从0一直加到65535,如果再加计数器就会回到0重新开始,所以计数器的值在计时过程中会不断地自增运行,当自增运行到目标值是,产生中断,那就完成了定时作用。

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

        这里代表会产生中断信号,这种计数值等于重装值一般叫做“更新中断”,更新中断之后就会通往NVIC,我们再配置好NVIC的定时器通道,那定时器的更新中断就能够得到CPU的响应了。

        这里代表的是会产生一个事件,这里对应的事件就叫做“更新事件”,更新事件不会触发中断,但可以触发内部其他电路工作。

通用定时器:

        基本计时器只支持向上计数模式,通用计时器和高级定时器支持向上计数、向下计数、中央对齐这三种模式。

        向上计数模式:计数器从0开始,向上自增,计到重装值,清零同时申请中断,然后开始下一轮,依次循环。

        向下计数模式:从重装值开始向下自减,减到0之后回到重装值同时申请中断,然后继续下一轮,依次循环。

        中央对齐计数模式:从0开始先向上自增,计到重装值,申请中断,然后再向下自减,减到0再申请中断,然后继续下一轮,依次循环。

        这是内外时钟源选择和主从触发模式的结构,对于基本定时器而言,定时器只能选择内部时钟,也就是系统频率的72MHz,通用定时器的时钟源不仅可以选择内部的72MHz时钟,还可以选择外部时钟。

       这是 输出比较电路,总共有四个通道,分别对应CH1到CH4引脚,可以用于输出PWM波形、驱动电机;

        这是输入捕获电路,也是四个通道,对应的也是CH1到CH4的引脚,可以用于测输入方波的频率等;

        中间的这个寄存器是捕获/比较寄存器,是输入捕获和输出比较电路共用的,因为输入捕获和输出比较不能同时使用,所以这里的寄存器是共用的,引脚也是共用的。

高级定时器:

        申请中断的地方增加了一个重复次数计数器,有了这个计数器之后,就可以实现每隔几个计数周期才发生一次更新事件和更新中断,相当于对输出的更新信号又做了一次分频,大大的提升了定时时间。

定时中断基本结构:

  • 24
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值