设置一个变量,然后给定时器的计数器幅值的时候,把变量的高低字节赋给计数寄存器。而这个变量可以在程序中,通过按键改变(增减)。这样就可以把时间可调。
是用来产生定时器的中断溢出时间的,计算公式是:
T=Ftosc/(TIM_Period+1)*(TIM_Prescaler+1);(Ftosc是定时器时钟)
其中T,是中断溢出时间,你的这个例子就是1Sec,TIM_Period,是计数器的计数频率,TIM_Prescaler是定时器隔多少个周期溢出,化量溢出时间的。这两个数字的组合可以产生小于(最小分频因子,最大溢出周期,所产生的时间)下的任意时间。一般是产生1S,不过定时器只是用来产生1S时间太占用CPU资源了,如果想不占用CPU,可以用一个特殊的定时间,就是滴答了。最后还有第三句的意思是就产生定时器时对系统时钟的分频因子。此例中是1分频,就是不分频。
我的理解:
ARR+1:定时器寄存器是从0开始计时的,0也算做一个值,比如你定时10个定时器周期,那么你往ARR寄存器中应写入9
PSC+1:道理和上面一样,0=1分频,1=2分频,2=3分频,,,
虽然寄存器中的值是0,但实际上是1,所以计算的时候要+1
如果程序中没有设置的话,很有可能在可视化设置窗口“ STM32_Init”中设置的TIM的相关定时器。
本文标签:stm32队列接收是在定时器加