请问timer初始化时TIM_Prescaler和TIM_Period可以混着用吗?

2019-07-14 14:38发布

一般情况下是tiM_Period设为一个时钟频率的整数倍-1,TIM_Prescaler就按照想要更新的速率

不过我看到的公式是
两个数值 +1 相乘再除以时钟频率,得到定时器的时间,
那么请问这两个数值反过来用一样吗?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
10条回答
huazhe
1楼-- · 2019-07-14 18:45
顶楼上。
那些公式只是表述的需要才有的。关键你了解怎么回事就好,一般有个小学4年级上下水平都能理解过来。
只是平常有时懒于做些思考了。呵呵

至于为什么减一,你结合ST MCU定时器相关部分的时序图看看,都是从0开始算起的。
斌无非师范
2楼-- · 2019-07-14 20:32
hongqiaolian 发表于 2019-1-11 08:37
不太明白楼主的意思,我认为是一样的。这个我一般就按论坛里的教程做的:

假设时钟频率为48MHZ,如果指定预分频器即TIM_Prescaler的值为48000(-1),那么经48000分频之后的工作频率就是1000,也就是所谓的1KHz。如果再指定计数值即TIM_Period为1000(-1)的话,恰好就是1秒了。忘记那些计算公式吧,这样算就很好。

立马就懂了
60user189
3楼-- · 2019-07-14 21:01
一个是分频系数,一个是计数值,可以一起用吧
5616asaqwq
4楼-- · 2019-07-15 00:57
我觉得可以反过来,但是分频支持的数值好像没有周期的大
biao66
5楼-- · 2019-07-15 04:16
 精彩回答 2  元偷偷看……
biao66
6楼-- · 2019-07-15 08:00
arr 和 psc 的值,就可以计算中断时间了。计算公式如下:
Tout= ((arr+1)*(psc+1))/Tclk;
其中:
Tclk: TIM 的输入时钟频率(单位为 Mhz)。
Tout: TIM 溢出时间(单位为 us)。

一周热门 更多>