stm32定时器的定时计算公式Tout= ((arr+1)*(psc+1))/Tclk里,为什么预分频系数以及寄存器周期的值都要加1
发布网友
发布时间:2022-05-15 23:46
我来回答
共3个回答
热心网友
时间:2024-02-29 06:46
我的理解:
ARR+1:定时器寄存器是从0开始计时的,0也算做一个值,比如你定时10个定时器周期,那么你往ARR寄存器中应写入9
PSC+1:道理和上面一样,0=1分频,1=2分频,2=3分频,,,
虽然寄存器中的值是0,但实际上是1,所以计算的时候要+1
热心网友
时间:2024-02-29 06:47
打个简单的比方,在时间里面,有0-59秒,因为从0开始计数,总共计数60次。,实际上在第60秒的时候就是第二个0秒。
然后在stm32定时器里,比如你的psc设置为7199,那么它从0开始计数,一直到7199,已经计数7200次,可以溢出了,所以要加1让他溢出。
总之,就是从0开始计数,不是从1开始计数,所以要加1.这是我的个人理解。
热心网友
时间:2024-02-29 06:47
比如计数10个 是从0 到 9, 这就说明只到9就可以了,所以需要减一。
STM32F0xx_TIM基本延时配置详细过程:
http://blog.csdn.net/ybhuangfugui/article/details/51534803追问那预分频系数呢,为什么也要加1?