psc、arr都为16位寄存器。即,最大数字不能超过2^16-1(65535)
Tout = ((arr+1)*(psc+1))/Tclk ;
其中:
Tclk:定时器的输入时钟频率(单位MHZ)
Tout:定时器溢出时间(单位为us)
.TIM_Period = arr; eg;4999
.TIM_Prescaler = psc; eg:7199
Tout = ((4999+1)×(7199+1))/72 = 500000us = 500ms 。
可以看到,定时时间(溢出时间)由两个决定:
1、定时器时钟频率 : Tclk(定时器的输入时钟频率)/(psc+1)(psc:预分频系数)
2、自动装载值 :arr
这个重装载值的意思就是当我们的定时器的计数值达到这个arr时,定时器就会重新装载其他值。
定时器时钟频率的倒数即是定时器一个周期所用的时间
这里的频率的意思就是1s中记 Tclk/(psc+1)M个数 (1M=10的6次方) ,每记一个数的时间为(psc+1)/Tclk ,很好理解频率的倒数是周期,这里每一个数的周期就是(psc+1)/Tclk 秒,然后我们从0记到arr 就是 (arr+1)*(psc+1)/Tclk。
我们这里记录7200个数进入定时器更新(7199+1)x(1/7200)=1s,也就是1s进入一次更新Update