Skip to content

定时器的使用方法

定时器简介

定时器是Linux系统中非常重要的一个功能,它可以帮助我们实现一些定时执行的任务,比如定时备份数据、定时清理日志等。

定时器的分类

stm32定时器可以分为基本定时器、高级定时器.

  1. 基本定时器 对于stm32f10x系列,基本定时器有TIM2、TIM3、TIM4、TIM5. 都是32位定时器,时钟源都是APB1,也就是HCLK/2.
  2. 高级定时器 对于stm32f10x系列,高级定时器有TIM1、TIM8. 都是16位定时器,时钟源都是APB2,也就是HCLK/2.高级定时器除了基本的定时功能外,还支持PWM输出、输入捕获、输出比较等功能。

核心基础逻辑(先理解再配置)

定时器从模式的核心是触发源(TRGI) 与响应行为(Slave Mode) 的组合:

  • 触发源:决定 “谁来触发”(内部定时器 TRGO、外部引脚 TIx/ETR)。
  • 从模式:决定 “触发后做什么”(启动、复位、暂停、以外部脉冲为时钟)。
  • 时钟源:决定计数器的 “计数节拍”(内部时钟 CK_INT 或外部触发脉冲)。

定时器的使用方法

  1. 如何在 stm32cubemx 中配置定时器呢?

    • Slave Mode(从模式) 作用:定义定时器接收到触发信号(TRGI)后的核心响应行为,对应寄存器 TIMx_SMCR 的 SMS[2:0] 位。 也就是说当前定时器是作为其它定时器的从属定时器. 这种模式一般用不上.
    • Trigger Selection(触发源) 作用:定义行器接收到触发信号的源,对应寄存器 TIMx_SMCR 的 TS[2:0] 位。也就是说当前定时器是由什么触发的. 这里的配置与上一项的配置(Slave Mode)相关.
    • Clock Source(时钟源) 作用:定义定时器的计数时钟源,对应寄存器 TIMx_SMCR 的 ETP[2:0] 位。也就是说当前定时器的计数时钟是来自哪里. 这里一般用的是内部时钟.即: "Internal Clock"
    • Channel x Output(通道1输出) 作用:定义定时器的输出,对应寄存器 TIMx_CCMR1 的 CC1S[1:0] 位。定时器到达时作何响应. 这里一般是输出比较.即: "Compare Output Mode",如果只是计时的话,这里一般不配置.

    定时器配置详解