完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
一般情况下是tiM_Period设为一个时钟频率的整数倍-1,TIM_Prescaler就按照想要更新的速率
不过我看到的公式是 两个数值 +1 相乘再除以时钟频率,得到定时器的时间, 那么请问这两个数值反过来用一样吗? |
|
相关推荐
11个回答
|
|
不太明白楼主的意思,我认为是一样的。这个我一般就按论坛里的教程做的:
假设时钟频率为48MHZ,如果指定预分频器即TIM_Prescaler的值为48000(-1),那么经48000分频之后的工作频率就是1000,也就是所谓的1KHz。如果再指定计数值即TIM_Period为1000(-1)的话,恰好就是1秒了。忘记那些计算公式吧,这样算就很好。 原文就这个意思,呵呵。 |
|
|
|
顶楼上。
那些公式只是表述的需要才有的。关键你了解怎么回事就好,一般有个小学4年级上下水平都能理解过来。 只是平常有时懒于做些思考了。呵呵 至于为什么减一,你结合ST MCU定时器相关部分的时序图看看,都是从0开始算起的。 |
|
|
|
hongqiaolian 发表于 2019-1-11 08:37 立马就懂了 |
|
|
|
一个是分频系数,一个是计数值,可以一起用吧
|
|
|
|
我觉得可以反过来,但是分频支持的数值好像没有周期的大
|
|
|
|
来看看 不是很明白楼主意思
|
|
|
|
arr 和 psc 的值,就可以计算中断时间了。计算公式如下:
Tout= ((arr+1)*(psc+1))/Tclk; 其中: Tclk: TIM 的输入时钟频率(单位为 Mhz)。 Tout: TIM 溢出时间(单位为 us)。 |
|
|
|
hongqiaolian 发表于 2019-1-11 08:37 您好大神,我想问下,为什么教程里的72M时钟,就要除以36000,得数为2000,表示1秒计数2000次?那除以72000得数为1000,不也是1秒计数到1000?这个2000,1000的数是初值?初值不应该是从该数计数到65536?为何是从0计数到该数呢?实在不明白,希望大神指点!!!! |
|
|
|
这是多么幼稚的问题
|
|
|
|
要是可以混用,何必搞成2个
|
|
|
|
直接一个完事
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
878 浏览 0 评论
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
936 浏览 2 评论
2044 浏览 0 评论
如何解决MPU-9250与STM32通讯时,出现HAL_ERROR = 0x01U
1145 浏览 1 评论
hal库中i2c卡死在HAL_I2C_Master_Transmit
1568 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 01:50 , Processed in 0.806586 second(s), Total 93, Slave 76 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号