STM32-TIM定时器(概念部分)

TIM简介

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

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

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

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

TIM定时器类型

类型编号总线
高级定时器TIM1、TIM8APB2拥有通用定时器全部功能,并额外具有重复计数器、死区生成、互补输出、刹车输入等功能
通用定时器TIM2、TIM3、TIM4、TIM5APB1拥有基本定时器全部功能,并额外具有内外时钟源选择、输入捕获、输出比较、编码器接口、主从触发模式等功能
基本定时器TIM6、TIM7APB1拥有定时中断、主模式触发DAC的功能

注:STM32F103C8T6只有TIM1-TIM4

 1.基本定时器

时基单元:
1.预分频器(PSC):

 对内部时钟进行分频,输出频率=输入频率/(预分频值+1),因为这个预分频器是16位的,所以最大值是65535(从0开始计数)。

2.CNT计数器:

 在内部时钟经过预分频器分频后,每来一个上升沿CNT计数器+1,CNT计数器同样也是16位的,最大值也是65535(从0开始计数)。

3.自动重装载寄存器:

 自动重装载寄存器储存的值时CNT计数器的目标值,当CNT计数器达到自动重装载寄存器设定的值时,产生一个中断(向上的箭头),(这种中断我们一般叫做更新中断,更新中断后就会前往NVIC),并清空CNT计数器。向下的箭头代表会产生一个事件叫更新事件,可以触发内部其他电路的工作。自动重装载寄存器同样也是16位的,最大值也是65535(从0开始计数)。

主模式 

由于DAC转换在使用更新中断需要频繁调用中断,影响主程序的运行和其他中断的响应。所以可以使用主模式可以把更新事件映射到TRGO的位置,然后TRGO连接到DAC触发转换引脚上,这样定时器的更新就不需要通过中断来触发DAC转换了,在主模式下TRGO会自动触发DAC转换,实现了硬件的自动化,这是主模式的作用。

 2.通用定时器

 时基单元

和通用计数器基本一样, 但是基本定时器的CNT计数器只支持向上计数,通用定时器的CNT计数器支持向上/向下/中央对齐计数。

时钟源选择
1.内部时钟源(CK_INT)

72Mhz时钟

2.外部时钟源模式1

ETR引脚

 ITRx:实现定时器的级联

TIMx内部触发连接

 例:初始化TIM3,再使用主模式把他的更新事件映射到TRGO上,接着再初始化TIM2,选择ITR2,然后再选择时钟位外部模式时钟1,这样就实现了定时器的级联。 

TI1_ED:

TI1_ED连接的是输入捕获单元CH1引脚,ED是边沿的意思,通过这一路的时钟上升沿和下降沿都有效。
TI1FP1 TI1FP2

 连接方式如图所示。

3.外部时钟源模式2

引脚号引脚名称类型I/O口电平主功能默认复用功能重定义功能
10PA0-WKUP I/O PA0WKUP/USART2_CTS/ADC12_IN0/TIM2_CH1_ETR
33PA12 I/O FT PA12USART1_RTS/USBDP/CAN_TX/TIM1_ETR

在TIMx_ETR引脚输入一段方波信号,依次配置边沿检测(ETP),预分频器(ETPS),滤波器(ETF),在通过ETRF进入触发控制器。

想在ETR外部引脚提供时钟,或者=想对ETR时钟进行计数,把这个定时器当计数器用的情况下,就可以配置这一路的电路。

3.高级定时器

可以用来控制三相无刷电机,这里我不进行过多讨论。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值