STM32 定时器配置:100ms 定时器设置详解
定时器的计数频率为定时器时钟频率除以预分频系数,即:
计数频率 = 定时器时钟频率 / 预分频系数
由于要定时 100ms,因此计数器的计数值为:
计数值 = 定时器时钟周期 × 时间 / 预分频系数
其中,定时器时钟周期为 1/72MHz = 13.89ns。
将时间和定时器时钟周期代入上式,得到计数值为:
计数值 = 100ms / 13.89ns / 预分频系数
为了方便计算,假设预分频系数为 1,则计数值为:
计数值 = 100ms / 13.89ns = 720576
由于计数器的取值范围为 16 位,因此 ARR 的值应该小于等于 65535。因此,可以选择 ARR 的值为 65535,而 PSC 的值为:
PSC = (计数值 + ARR) / 65535
将计数值和 ARR 代入上式,得到:
PSC = (720576 + 65535) / 65535 ≈ 12.01
由于 PSC 只能取整数,因此可以选择 PSC 的值为 12 或 13。选择 PSC=12 时,实际的计数频率为:
计数频率 = 72MHz / 12 = 6MHz
此时,计数器的计数时间为:
计数时间 = 计数值 × 定时器时钟周期 × 预分频系数
代入数值,得到:
计数时间 = 720576 × 13.89ns × 12 ≈ 100.04ms
可以看到,实际的计数时间已经非常接近于目标的 100ms 了。因此,可以选择 ARR=65535,PSC=12 来设置定时器。
原文地址: https://www.cveoy.top/t/topic/mjrQ 著作权归作者所有。请勿转载和采集!