STM32 定时器分频值(PSC)和预装载寄存器值(ARR)的计算
STM32 定时器分频值( PSC )的计算基于目标定时时长、时钟频率及预分频寄存器的最大值(通常为65535)。计算公式为:
PSC = (目标时长 × 时钟频率) ÷ 65536 - 1。
计算步骤
- 确定目标时长:根据需求设定定时时长(如1秒、1毫秒等)。
- 获取时钟频率:通过STM32时钟配置(如 APB1 总线时钟)计算实际定时器时钟频率。
- 计算分频值:将目标时长与实际时钟频率代入公式计算。
示例
- 目标:1秒,若APB1时钟为36MHz,则分频值为:
PSC = (1s × 36MHz) ÷ 65536 - 1 = 59.65秒(需调整至合理范围)。 - 目标:1毫秒,若时钟为36MHz,分频值为:
PSC = (1ms × 36MHz) ÷ 65536 - 1 = 59.99ms(需调整)。 12
注意事项
- 分频值需写入寄存器时减1(如PSC实际写入值为计算结果减1)。
- 若需更精确控制,可结合 预装载寄存器 ( ARR )调整溢出时间
--------------------------------------------------------------------------------------------
TIM (定时器)的预分频值和预装载寄存器值是控制定时器周期的核心参数,二者通过分频和计数共同确定定时时长。
预分频值(PSC)
预分频值用于降低定时器时钟频率,计算公式为:
实际频率 = 输入时钟频率 ÷ (预分频值 + 1)
例如,若输入时钟为72MHz,预分频值为7,则实际计数频率为72MHz ÷ 8 = 9MHz。预分频值通常为8位或16位,最大可达65535(对应最大分频65536倍)。 12
预装载寄存器值(ARR)
预装载值用于设置定时器计数周期,计算公式为:
定时时长 = (预装载值 + 1) × 时钟周期
例如,若预装载值为1000,实际定时时长为1001个时钟周期。ARR通常为16位,最大值65535(对应最长定时约131秒)。 14
两者关系
预分频值影响计数频率,预装载值决定定时时长。例如:
- 预分频值 = 6(分频256倍)
- 预装载值 = 4095
则定时时长为:
(256 × 4095 × 1us) ÷ 40kHz = 26214us ≈ 26.2ms
https://blog.csdn.net/Cha3043445754/article/details/144428424

浙公网安备 33010602011771号