发 帖  
张飞软硬开源:基于MST32的BLDC直流无刷电机驱动器,👉戳此立抢👈
[问答] 请问timer初始化时TIM_Prescaler和TIM_Period可以混着用吗?
1085 TIM 定时器
分享
一般情况下是tiM_Period设为一个时钟频率的整数倍-1,TIM_Prescaler就按照想要更新的速率

不过我看到的公式是
两个数值 +1 相乘再除以时钟频率,得到定时器的时间,
那么请问这两个数值反过来用一样吗?
0
2019-1-11 09:24:42   评论 分享淘帖 邀请回答
11个回答
不太明白楼主的意思,我认为是一样的。这个我一般就按论坛里的教程做的:

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

原文就这个意思,呵呵。
2019-1-11 09:39:40 评论

举报

顶楼上。
那些公式只是表述的需要才有的。关键你了解怎么回事就好,一般有个小学4年级上下水平都能理解过来。
只是平常有时懒于做些思考了。呵呵

至于为什么减一,你结合ST MCU定时器相关部分的时序图看看,都是从0开始算起的。
2019-1-11 09:50:55 评论

举报

hongqiaolian 发表于 2019-1-11 08:37
不太明白楼主的意思,我认为是一样的。这个我一般就按论坛里的教程做的:

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

立马就懂了
2019-1-11 09:57:40 评论

举报

一个是分频系数,一个是计数值,可以一起用吧
2019-1-11 10:12:27 评论

举报

我觉得可以反过来,但是分频支持的数值好像没有周期的大
2019-1-11 10:26:26 评论

举报

来看看  不是很明白楼主意思
2019-1-11 10:37:48 评论

举报

arr 和 psc 的值,就可以计算中断时间了。计算公式如下:
Tout= ((arr+1)*(psc+1))/Tclk;
其中:
Tclk: TIM 的输入时钟频率(单位为 Mhz)。
Tout: TIM 溢出时间(单位为 us)。
2019-1-11 10:49:27 评论

举报

hongqiaolian 发表于 2019-1-11 08:37
不太明白楼主的意思,我认为是一样的。这个我一般就按论坛里的教程做的:

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

您好大神,我想问下,为什么教程里的72M时钟,就要除以36000,得数为2000,表示1秒计数2000次?那除以72000得数为1000,不也是1秒计数到1000?这个2000,1000的数是初值?初值不应该是从该数计数到65536?为何是从0计数到该数呢?实在不明白,希望大神指点!!!!
2019-1-11 10:56:14 评论

举报

2019-1-11 14:16:04 评论

举报

要是可以混用,何必搞成2个
2019-1-11 14:16:20 评论

举报

2019-1-11 14:16:29 评论

举报

撰写答案

你正在撰写答案

如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。

高级模式
您需要登录后才可以回帖 登录 | 注册

我要提问
课程
    关闭

    站长推荐 上一条 /8 下一条

    快速回复 返回顶部 返回列表