首页 > 技术文章 > STM32定时器原理

jzcn 2022-01-17 14:35 原文

一、简介

不同的芯片定时器的数量不同,STM32F10x中一共有11个定时器,其中2个高级控制定时器,4个普通定时器和2个基本定时器,以及2个看门狗定时器和1个系统嘀嗒定时器。

  • 基本定时器:TIM6、TIM7是基本定时器,只能向上计数,具备定时功能,没有外部IO口,所以不具备捕获和通道比较
  • 通用定时器:TIM2、TIM3、TIM4、TIM5是通用定时器,可以向上计数、向下计数、向上/下计数,具备时器功能、输出比较、输入捕捉,每个通用定时器具有4个外部IO口。
  • 高等定时器:TIM1、TIM8是高等定时器,可以向上计数、向下计数、向上/下计数,具备时器功能、输出比较、输入捕捉、输出三相电机互补信号,每个高等定时器有8个外部IO口。
    定时器分类:
定时器种类 计数器分别率 计数类型 产生DMA请求 捕获/比较通道 互补输出 应用场景
基本定时器(TIM6,TIM7) 16 向上 可以 4 主要应用于驱动DAC
通用定时器(TIM2-TIM5) 16 向上、向下 、向上/下 可以 4 定时器计数,PWM输出,输入捕获,输出比较
高级定时器(TIM1,TIM8) 16 向上、向下 、向上/下 可以 4 定时器计数,PWM输出,输入捕获,输出比较,输出三相电机互补信号

二、定时器框图

  1. 基本定时器框图

    从图中可知,基本计时器的来源只有一个,并且来自内部时钟TIMxCLK,该时钟为经过APB1预分频器分频后提供,基本定时器跟APB1总线时钟的关系如下:
  • 如果APB1预分频系数为1,则基本定时器的时钟等于APB1总线时钟。
  • 如果APB1预分频系数不为1,则基本定时器的时钟等于APB1总线时钟经过分频后的2倍。

比如APB1总线经过2分频后的时钟为36MHZ,那么基本定时器的时钟就是72MHZ3(36*2)。

  • 预分频器:用来驱动基本定时器的计数器计数。基本定时器的预分频器是一个16位的预分频器,预分频器可以对定时器时钟进行1~65536之间的任何一个数进行分频。计算方式如下:
    计算方式如下:
      定时器工作时钟 = 来自APB1的时钟/(预分频系数+1)
  • CNT计数器:该计数器能能向上计数,最大计数值位65535。基本定时器的计数器从0开始向上计数,当计数器的值与自动重装载寄存器相等时产生更新事件,并清零从头开始计数。
  • 自动重装载寄存器:该寄存器装着计数器能计数的最大数值。当基本定时器的计数器计数到这个值的时候,如果使能了中断。定时器就会产生溢出中断。
  1. 通用定时器框图

    从图中可以看出来,通用定时器的时钟来源一共有4个:
  • 内部时钟(CK_INT)
  • 外部时钟模式1:外部输入脚(TIMx_CHx)
  • 外部时钟模式2:外部触发输入(TIMx_ETR)
  • 内部触发输入(ITRx):使用一个定时器作为另一个定时器的预分频器,如可以配置一个定时器Timer1而作为另一个定时器Timer2的预分频器。
    通过基本定时器与通用定时器框图的对比,可以看出通用定时器多了3个时钟输入源,4个TIMx_CHx捕获通道,4个TIMx_CHx比较通道,现在可以很容易的看明白通用定时器的框图。对于通用定时器,常用的时钟源是内部时钟(CK_INT)用法和基本定时器的使用方法一直。
  1. 高级控制定时器框图

    从图中可以看出,高级定时器比通用定时器多了,输入通道TIMx_BKIN,比较通道多了DTG寄存器已经输出通道TIMx_CHxN

三、定时器的时间计算

  定时器的计数次数由自动重装载寄存器决定的,计数器从0开始向上计数,当计数器的值与自动重装载寄存器相等时,产生溢出。所以定时器的溢出时间计算公式如下:
  Time = ( PSC + 1 )( ARR + 1 )/ TIMxCLK(us)
ARR是自动重装载寄存器的值、TIMxCLK是时钟频率、PSC是预分频的值。
假设基本定时器TIMxCLK = 72MHZ,PSC = 71,ARR = 999,那么定时器的溢出时间为:
  Time = ( 71 + 1 )
( 71 + 1 )/ 72 = 1000(us) = 1(ms)

参考文献

STM32F103ZET6的基本定时器:https://www.cnblogs.com/h1019384803/p/11032712.html
菜鸟必看 | STM32通用定时器功能和用法:https://www.sohu.com/a/127978571_464086
STM32定时器功能概括:https://blog.csdn.net/qq_43460106/article/details/108401593

推荐阅读