我是靠谱客的博主 老实发带,最近开发中收集的这篇文章主要介绍STM32定时器基本原理一、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)

 

 

 

 

 

 

 

 

 

 

 

 

最后

以上就是老实发带为你收集整理的STM32定时器基本原理一、STM32定时器二、通用定时器的全部内容,希望文章能够帮你解决STM32定时器基本原理一、STM32定时器二、通用定时器所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(50)

评论列表共有 0 条评论

立即
投稿
返回
顶部