正点原子stm32f407开发板定时器定时时间计算公式为:
Tout = ((arr+1)* (psc+1))/ Tclk
其中arr是重装载寄存器的值,psc是分频寄存器的值,Tclk是定时器的工作频率。利用该公式实际计算验证过,证明这个公式是没错的。但是有两点不明白:
第一:不明白为什么计算的时候要arr和psc的值加1?
第二:正点原子的程序中在初始化定时器时传入TIMx->ARR和TIMx->PSC的值在形参处都减1,为什么要这样写?既然传递的之前减一,计算的时候又要加1?为什么要这样呢?
以PSC来说吧,参考手册里有写
所以,真实的频率是填写数据+1。为什么设计上要求加1,真没深入研究过。
第二个问题:形参处-1完全是为了方便程序员阅读。