STM32 定时器分频值(PSC)和预装载寄存器值(ARR)的计算

STM32 定时器分频值( PSC )的计算基于目标定时时长、时钟频率及预分频寄存器的最大值(通常为65535)。计算公式为:
PSC = (目标时长 × 时钟频率) ÷ 65536 - 1‌。

计算步骤

  1. 确定目标时长‌:根据需求设定定时时长(如1秒、1毫秒等)。
  2. 获取时钟频率‌:通过STM32时钟配置(如 APB1 总线时钟)计算实际定时器时钟频率。
  3. 计算分频值‌:将目标时长与实际时钟频率代入公式计算。

示例

  • 目标: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

https://www.cnblogs.com/qingfeng515/p/17436149.html

posted @ 2025-08-08 11:37  微笑的''80  阅读(132)  评论(0)    收藏  举报