STM32----摸石头过河系列(八)

在STM32中定时器(TIM)是很重要的外设,具有相当多的作用,并且用法多样,内容多。今天来分析一下定时器的理论知识,没有实例。

在STM32中定时可以分为三类:基本定时器、通用定时器、高级定时器。

一、基本定时器

计数器定时器TIMx_CNT,只能向上计数,重载寄存器TIMx_ARR中保存的是定时器的溢出值。TIMx_CNT由时钟触发进行计数,当计数器的值等于溢出值时,产生溢出事件触发中断或DMA请求。

二、通用定时器

通用定时器的主要用来对输入脉冲的频率的测量、脉冲宽度的测量、输出PWM脉冲、还具有编码器的接口。

  1. 通用定时器的的基本计时功能与基本定时器的基本计时功能相同。
  2. PWM输出

    利用GPIO引脚进行脉冲输出,TIMx_CCR在配置比较输出时,PWM输出功能时TIMx_CCR被用作比较功能。若TIMx_CNT为向上计数,且TIMx_ARR配置为N,TIMx_CNT的值不断增加,当TIMx_CNT的值大于N时,重置TIMx_CNT的值为0,并重新计数。

    在TIMx_CNT计数时,计数值X与比较寄存器TIMx_CCR的值A进行比较。若X 小于A则输出高电平(或低电平)。相反当脉冲计数器的值X大于或者等于A时输出低电平(或高电平)。如此得到输出脉冲的周期为TIMx_ARR存储器的值(N+1)乘以触发脉冲的时钟周期,脉冲宽度则为TIMx_CCR的值A乘以触发脉冲的时钟周期,即输出的PWM的占空比为A/(N+1)。

  3. PWM输入

    此时TIMx_CCR被用作捕获功能。TIMx_CNT配置为向上计数,TIMx_ARR的值N足够大。在输入脉冲TI1的上升沿到达时,触发IC1和IC2输出捕获中断,TIMx_CNT值复位为0,TIMx_CNT自己增加,直到TI1出现下降沿触发IC2捕获事件,此时,TIMx_CRR2存储TIMx_CNT当前值。TIMx_CNt继续增加,当TI1出现第二个上升沿时,触发IC1捕获事件,TIMx_CCR1存储当前TIMx_CNT的值。

正是因为TIMx_CCR的存在,才使得通用定时器的功能如此强大。定时器的内部时钟都是TIMxCLK,但TIMxCLK的时钟来源并不是完全一样。TIM2~7基本定时器和通用定时器的时钟都是APB1预分频器的输出。TIM1和TIM8两个高级定时器的时钟是APB2预分频气的输出。

三、高级定时器

TIM1和TIM8是两个高级定时器,他们具有基本通用定时器的所有功能,还具有三相6步电机的接口、刹车功能、以及用于PWM驱动电路的死区时间的控制,非常适合电机的控制。

死区时间,在H桥、三相桥的PWM驱动电路中,上下两个桥的PWM驱动信号是互补的。即上下桥轮流导通,但实际上为了防止出现上下桥同时导通(会出现短路),在上下桥切换时,留下一段时间上下桥都施加关断信号,上下桥都关断的时间称为死区时间。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值