关于c:STM32定时器参数设置TIMPrescalerTIMPeriod

5次阅读

共计 679 个字符,预计需要花费 2 分钟才能阅读完成。

TIM_Prescaler
定时器预分频器设置,时钟源经该预分频器才是定时器时钟,它设定 TIMx_PSC 寄存器的值。可设置范畴为 0 至 65535,实现 1 至 65536 分频。

TIM_Period
定时器周期,理论就是设定主动重载寄存器的值,在事件生成时更新到影子寄存器。可设置范畴为 0 至 65535。

依据定时器时钟的频率,比方时钟的频率是 72MHZ,能够了解为一秒钟 STM32 会本人数 72M 次,预分频系数就是将频率宰割,比方分频系数是 72,则该时钟的频率会变成 72MHZ/72=1MHZ,然而在设置的时候要留神,数值应该是 72-1。

假设分频系数是 72-1,那么频率变成 1MHZ,也就意味着 STM32 在一秒钟会数 1M 次,即 1us 数一次。

好了,接下来就是确定预装载值,比方须要定时 1ms,因为 1ms=1us*1000, 那么预装载值就是 1000-1;如此类推,在预分频系数确定的状况下,定时的时长就由预装载值确定了。至于要把值减一的起因,预计是计数是从 0 开始,所以要减一。

原文链接:https://blog.csdn.net/ZIIllII…

// 对于 71MHZ 的频率,500ms 中断一次,这两个参数设置如下:TIM_Prescaler=7199;   // 预分频值
TIM_Period=4999;    // 下一个更新事件装入流动的主动重装载寄存器周期的值

   // 分频 7200,用 72000000/7200=10000Hz
   // 此时的周期就是 1 /10000=0.0001s
   //500ms=0.0001s*5000 次
   //5000-1=4999 次
   // 即通过 4999 次零碎的运行,就是 500ms
正文完
 0