STM32定时器基本原理

目录

一、STM32定时器

二、通用定时器

1、通用定时器的功能特点

2、可产生中断或DMA的事件

3、计数器模式

4、工作过程

5、计数器时钟源选择

6、计数器时基单元

7、定时器同步


一、STM32定时器

STM32中定时器可分为高级定时器、通用定时器、基本定时器三类,他们都是由一个可编程的16位预分频器(TIMX_PSC)驱动的16位

自动装载计数器(TIMX_CNT)构成。这三种定时器的区别如下:

定时器种类 

位数

计数器模式

产生DMA请求

捕获/比较通道

互补输出

特殊应用场景

高级定时器

TIM1,TIM8

16

向上,向下,向上/下

可以

4

带死区控制盒紧急刹车,可应用于PWM电机控制

通用定时器TIM2~TIM5

16

向上,向下,向上/下

可以

4

通用。定时计数,PWM输出,输入捕获,输出比较

基本定时器

TIM6,TIM7

16

向上,向下,向上/下

可以

0

主要应用于驱动DAC

二、通用定时器

1、通用定时器的功能特点

1、位于低速的APB1总线上(APB1)

2、16 位向上、向下、向上/向下(中心对齐)计数模式,自动装载计数器(TIMx_CNT)。

3、16 位可编程(可以实时修改)预分频器(TIMx_PSC),计数器时钟频率的分频系数

为 1~65535 之间的任意数值。

4、4 个独立通道(TIMx_CH1~4),这些通道可以用来作为: 

  • 输入捕获 
  • 输出比较
  • PWM 生成(边缘或中间对齐模式) 
  • 单脉冲模式输出 

5、可使用外部信号(TIMx_ETR)控制定时器和定时器互连(可以用 1 个定时器控制另外一个定时器)的同步电路。

2、可产生中断或DMA的事件

1、更新:计数器向上溢出/向下溢出,计数器初始化(通过软件或者内部/外部触发) 

2、触发事件(计数器启动、停止、初始化或者由内部/外部触发计数) 

3、输入捕获 

4、输出比较 

5、支持针对定位的增量(正交)编码器和霍尔传感器电路 

6、触发输入作为外部时钟或者按周期的电流管理

3、计数器模式

1、向上计数模式:计数器从0计数到自动加载值(TIMx_ARR),然后重新从0开始计数并且产生一个计数器溢出事件。

2、向下计数模式:计数器从自动装入的值(TIMx_ARR)开始向下计数到0,然后从自动装入的值重新开始,并产生一个计数器向下溢出事件。

3、中央对齐模式(向上/向下计数):计数器从0开始计数到自动装入的值-1,产生一个计数器溢出事件,然后向下计数到1并且产生一个计数器溢出事件;然后再从0开始重新计数。

4、工作过程

在选定的时钟源(可以是内部的也可以是外部的)和预分频器TIMX_PSC的驱动下,根据设置的计数模式(向上、向下、中央对齐)自动

装载计数器TIMX_CNT开始计数;如果使能了相应的事件(更新事件、触发事件、输入捕获、输出比较)则会产生相应的中断

  • 如果没有开启输入和输出,只使能了计数器计数溢出后自动装载,可以做为一个简单定时器使用,计数器自己开始周期计数
  • 如果开启了通道输入捕获,当检测到ICx信号上相应的边沿后,计数器(CNT)的当前值被锁存到捕获/比较寄存器(TIMx_CCRx)中,通过中断的方式可以读取出来假设为 n1,然后更改输入捕获的信号级性(上升沿或下降沿),当再次检测到ICx信号上相应的边沿后,计数器(CNT)的当前值再次被锁存到捕获/比较寄存器(TIMx_CCRx)中假设为 n2;n2 -n1节可算出电平的持续时间
  • 如果开启了输出控制,可以产生一个由TIMx_ARR寄存器确定频率、由TIMx_CCRx寄存器确定占空比的PWM信号。
  • 如果选择外部的同步时钟信号(TI1F_ED、TI1FP1、TI2FP2)作为计数器的时钟源,可以用来统计脉冲,实现脉冲频率采集功能

 

5、计数器时钟源选择

  •  内部时钟(CK_INT)

 

  • 外部时钟模式1:外部输入脚(TIx)

  • 外部时钟模式2:外部触发输入(ETR)

  • 内部触发输入(ITRx):使用一个定时器作为另一个定时器的预分频器,如可以配置一个定时器Timer1而作为另一个定时器Timer2的预分频器

6、计数器时基单元

7、定时器同步

所有TIMx定时器在内部相连,用于定时器同步或链接。当一个定时器处于主模式时,它可以对另一个处于从模式的定时器的计数器进行复

位、启动、停止或提供时钟等操作。定时器同步在实际使用中很少使用到,但是在CubeMX配置时会有Trigger Output(TRGO)

Parameters 配置项,所以还是需要搞清楚是干嘛用的。 主/从定时器使用场景:

  • 使用一个定时器作为另一个定时器的预分频器
  • 使用一个定时器使能另一个定时器
  • 使用一个定时器去启动另一个定时器
  • 使用一个定时器作为另一个的预分频器
  • 使用一个外部触发同步地启动2个定时器

控制寄存器2(TIMx_CR2)中的MMS[2:0]主模式选择 (Master mode selection):专门选择在主模式下送到从定时器的同步信息

(TRGO)

 

 

 

 

 

 

 

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值