stm32的定时器

179 篇文章 182 订阅

stm32一共有8个都为16位的定时器。其中TIM6、TIM7是基本定时器;TIM2、TIM3、TIM4、TIM5是通用定时器;TIM1和TIM8是高级定时器。

1.基本定时器

       基本定时器TIM6和TIM7只具备最基本的定时功能,就是累加的时钟脉冲数超过预定值时,能触发中断或触发DMA请求。由于在芯片内部与DAC外设相连,可通过触发输出驱动DAC,也可以作为其他通用定时器的时钟基准。

       这两个基本定时器使用的时钟源都是TIMxCLK,时钟源经过PSC预分频器输入至脉冲计数器TIMx_CNT,基本定时器只能工作在向上计数模式,在重载寄存器TIMx_ARR中保存的是定时器的溢出值。

       工作时,脉冲计数器TIMx_CNT由时钟触发进行计数,当TIMx_CNT的计数值X等于重载寄存器TIMx_ARR中保存的数值时,产生溢出事件,可触发中断或DMA请求。然后TIMx_CNT的值重新被置为0,重新向上计数。

2.通用计数器

       相比之下,通用计数器TIM2-TIM5就比基本定时器复杂得多了。除了基本的定时,它主要用在测量输入脉冲的频率、脉冲宽与输出PWM脉冲的场合,还具有编码器的接口。

1)捕获/比较寄存器

       通用寄存器的基本计时功能与基本计时器的工作方式是一样的,同样把时钟源经过预分频器输出到脉冲计数器TIMx_CNT累加,溢出时就产生中断或DMA请求。

       而通用定时器比基本定时器多出的强大功能,就是因为通用定时器多出了一种寄存器—捕获/比较寄存器TIMx_CCR,它在输入时被用于捕获(存储)输入脉冲在电平翻转时脉冲计数器TIMx_CNT的当前计数值,从而实现脉冲的频率测量;在输出时被用来存储一个脉冲数值,把这个数值用于与脉冲计数器TIMx_CNT的当前计数值进行比较,根据比较结果进行不同的电平输出。

2)PWM输出过程分析

        通用定时器可以利用GPIO引脚进行脉冲输出,在配置为比较输出、PWM输出功能时,捕获/比较寄存器TIMx_CCR被用作比较功能,下面把它简称为比较寄存器。

        PWM输出工作过程:若配置脉冲计数器TIMx_CNT为向上计数,而重载寄存器TIMx_ARR被配置为N,即TIMx_CNT的当前计数值X在TIMxCLK时钟源的驱动下不断累加,当TIMx_CNT的数值X大于N时,会重置TIMx_CNT数值为0并重新计数。

        而在TIMx_CNT计数的同时,TIMx_CNT的计数值X会与比较寄存器TIMx_CCR预先存储的数值A进行比较。当脉冲计数器TIMx_CNT的数值小于比较寄存器TIMx_CCR的值A时,输出高电平(或低电平);相反,当脉冲计数器的数值大于或等于比较寄存器的值A时,输出低电平(或高电平)。

        如此就得到,周期为重载寄存器TIMx_ARR存储的数值(N+1)乘以触发脉冲的时钟周期,其脉冲宽度则为比较寄存器ITMx_CCR的值A乘以触发脉冲的时钟周期,即输出PWM占空比为A/(N+1).

3)测量输入PWM

        要测量的PWM脉冲通过GPIO引脚输入到定时器的脉冲检测通道。把脉冲计数器TIMx_CNT配置为向上计数,重载寄存器TIMx_ARR的N值配置为足够大。

        在输入脉冲的上升沿到达时,触发IC1和IC2输入捕获中断,这时把脉冲计数器TIMx_CNT的计数值复位为0,于是TIMx_CNT的计数值X在TIMxCLK的驱动下从0开始不断累加,直到输入脉冲出现下降沿,触发IC2捕获事件,此时捕获寄存器TIMx_CCR2把脉冲计数器TIMx_CNT的当前值存储起来,而TIMx_CNT继续累加,直到输入脉冲出现第二个上升沿,触发IC1捕获事件,此时TIMx_CNT的当前计数值被保存到TIMx_CCR1.

        TIMx_CCR1(加1)的值乘以TIMxCLK的周期,即为待检测的PWM输入脉冲周期,TIMx_CCR2(加1)的值乘以TIMxCLK的周期,就是待检测PWM输入脉冲的高电平时间。

4)定时器的时钟源

   

    

注:以上内容来自《STM32库开发实战指南》

  • 7
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

【ql君】qlexcel

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值