概述
目录
一、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定时器二、通用定时器所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复