Skip to content

定时器中断 1ms 配置详解

在线计算定时器参数

我们先逐项解释这个界面里的参数,再给出实现 1ms 定时器中断 的具体配置方案。

一、逐项参数说明与选择依据

1. Counter Settings(计数器核心设置)

1.1 Prescaler (PSC - 16 bits value)

  • 作用:对定时器的输入时钟进行分频,公式为:

$\text{定时器计数时钟} = \frac{\text{定时器输入时钟}}{\text{PSC} + 1}$

  • 选择依据

    • 用于把高频的系统时钟(如 72MHz、84MHz)降到合适的计数频率,方便控制中断周期。

    • 取值范围:0 ~ 65535。

1.2 Counter Mode

  • 作用:选择计数器的计数方向:

    • Up:从 0 递增到 ARR,溢出后产生更新事件。

    • Down:从 ARR 递减到 0,下溢后产生更新事件。

    • Center-aligned mode 1/2/3:中心对齐模式,用于电机控制等 PWM 场景。

  • 选择依据

    • 普通定时中断:选 Up(最常用)。

    • 电机驱动、对称 PWM:选中心对齐模式。

1.3 Counter Period (AutoReload Register - ARR - 16 bits value)

  • 作用:计数器的“终点”,当计数器 CNT 递增到 ARR 时,产生更新事件(中断/更新 DMA 等)。

  • 选择依据

    • 与 PSC 共同决定定时周期:

    $\text{定时周期} = \frac{(\text{PSC} + 1) \times (\text{ARR} + 1)}{\text{定时器输入时钟}}$

    • 取值范围:0 ~ 65535。

1.4 Internal Clock Division (CKD)

  • 作用:对定时器的内部时钟进行分频,用于数字滤波器(ETR、TIx 等)的采样时钟。

    • No Division:CK_INT 直接作为采样时钟。

    • 2:CK_INT / 2。

    • 4:CK_INT / 4。

  • 选择依据

    • 普通定时中断:选 No Division(无需滤波时)。

    • 外部输入信号有噪声时,增大分频以提高滤波效果。

1.5 Repetition Counter (RCR - 8 bits value)

  • 作用:高级定时器(TIM1/TIM8/TIM20 等)特有,用于控制更新事件的触发频率。

    • 每经过 RCR+1 个计数周期,才产生一次更新事件。
  • 选择依据

    • 普通定时中断:保持 0(每周期都产生更新事件)。

    • 多周期 PWM 或特殊时序控制时使用。

1.6 auto-reload preload

  • 作用:控制 ARR 寄存器的更新时机:

    • Disable:写入 ARR 后立即生效。

    • Enable:写入 ARR 后,在下一次更新事件时生效(预装载)。

  • 选择依据

    • 普通定时中断:一般选 Disable 即可。

    • 电机控制等需要精确时序同步时,建议 Enable,避免 ARR 突变导致异常。

1.7 Slave Mode Controller

  • 作用:选择定时器的从模式(如 Trigger、Reset、Gated 等),这里显示为 Slave mode disable

  • 选择依据

    • 独立定时中断:保持 Disable,定时器只由软件控制。

    • 需要外部/内部触发控制时,再启用对应模式。


2. Trigger Output (TRGO) Parameters(主模式输出设置)

2.1 Master/Slave Mode (MSM bit)

  • 作用:控制主从模式下触发信号的延迟:

    • Disable:触发输入立即生效。

    • Enable:触发输入效果延迟到下一个时钟周期,用于同步多个定时器。

  • 选择依据

    • 独立定时器:保持 Disable

    • 多定时器同步时,为避免时序偏移,可 Enable。

2.2 Trigger Event Selection

  • 作用:选择作为 TRGO 输出的触发事件,用于触发其他定时器或外设(如 ADC):

    • Reset (UG bit from TIMx_EGR):软件产生更新事件时输出 TRGO。

    • Enable:计数器使能时输出 TRGO。

    • Update Event:更新事件时输出 TRGO(最常用)。

    • Compare Pulse:比较匹配时输出脉冲。

    • Compare OCxRef:OCxRef 信号作为 TRGO。

  • 选择依据

    • 独立定时中断:保持默认或根据需要选择。

    • 多定时器同步/触发 ADC 时,选择 Update Event 作为 TRGO,让其他定时器/外设同步。