定时器中断 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,让其他定时器/外设同步。
