完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
大家好,本人最近在编写F207定时器时(使用timer3,采用APB1总线).
问题描述: (1)寄存器配置情况: 即此进,我对RCC_CFGR,不做任何配置(APB1:即PPRE1[2:0]为“000”。AHB:即HPRE[3:0],PLL作为系统时钟输出为120M) (2)现象: 配置TIMER3, 120分频,溢出中断次数为1000,中断产生周期是1ms(APB1,未分频)。 (3)疑问: 按照芯片手册 PLLCLK = 120M; AHB 未分频;APBX未分频,从APBX出来的结果应该是120M,但由于APB1最大为30M,那么其输出到定时器最大时钟 应该最多为60M? 可是我查看溢出中断的波形分明为1ms,计数1000次,120分频计算的结果是120M. 请问如何达到120M, 给APB1 TIMER??? |
|
相关推荐
14个回答
|
|
本帖最后由 Dylan疾风闪电 于 2016-7-25 09:05 编辑
先上图,借cube模拟一个时钟配置: 从图中可以看到,APB1总线定时器的最高时钟频率为60MHz,即TIMx_CLK(max)=60MHz。 那么接下来就是TIMx_PSC分频后会产生一个 n * TIMx_CLK。 |
|
|
|
|
|
|
|
学习了
|
|
|
|
PLLCLK = 120M,一个上升沿,一个下降沿,应该要2个时钟周期了吧。
|
|
|
|
非常感谢您的回复,因为我司网络屏蔽了上传功能,无法上传图片。 您的这张图非常详细,再次感谢: 在图解中可以看到APB1总线出来的最高频率为30MHZ,2倍以后,最大为60MZ,图示明确指出APB1定时器的最高输入时钟频率为60M。这一点我们的理解是一样的。 我的重点问题是:根据我的调试计算,APB1的定时器时钟最高可达120M,与最大60M(30M*2=60M)相矛盾。此外,您说X2倍=120M,其实,从APB1出来的30M已经X2了,所以此处依然令人困扰,烦请解释呀。多谢谢了。 |
|
|
|
嘻嘻爱哈哈 发表于 2018-12-11 15:21 TIMx_PSC=120;这个是预分频参数;重计数周期为1000,根据输出波形发现是1ms; 根据计算公式如下: Tout=((arr+1)*(psc+1))/Tclk 得出Tclk = 120M; 看您的回复中 F=(60M*2)/(119+1)/(999+1 ... 我有点不明白60M为什么还要再乘以2;因为系统乘2,在APB1输出到TIMER3的时候,已经做过了。 |
|
|
|
。。。。。。。。。。。。。
|
|
|
|
如果对这个时钟不太清楚的话,我建议你去用CubeMX的那个时钟配置界面去配置。或者ST官方的有一个Excel+pdf的时钟配置工具,您可以看看呢。
|
|
|
|
FAI_weilijuan 发表于 2018-12-11 16:38 谢谢指点,不过,我的疑问仅在于最大输出为60M,到了TIM3后,为何TIM3 |
|
|
|
FAI_weilijuan 发表于 2018-12-11 16:38 谢谢指点,不过,我的疑问仅在于最大输出为60M,到了TIM3后,为何TIM3的时钟源变成了120M??? |
|
|
|
你的F2,我没有搞过,但是我的F4有如下这个图中所示(在时钟树那个章节)。除非APB1的分频系数是1,否则通用定时器的时钟等于APB1时钟的2倍。 所以这个部分你要多看参考手册中时钟树啊。不管什么程序,只要涉及到时钟,肯定要看时钟树的。所以,你好好看下F2的参考手册。 |
|
|
|
本帖最后由 rabbit80 于 2016-7-27 15:27 编辑
兄弟,您说的这个时钟树,我在发帖前就早已读懂了,这一点请您不要怀疑我的能力。 我们的之间的分歧是:您没有读懂我的问题,而冒然回答,这样不太好吧! pllclk = 120M,经过AHB(未分频),再APB1(4分频)出来30M, 再乘以2,得到60M.(这种初学者都能理解的知识,还请您不要再发了,谢谢) 如果您确实想帮我,就请您再认真读一下我的问题吧,万分感谢!!! 问题(再重复一下,请理解后,再作答,多谢): PLLCLK = 120M, AHB(未分频), 再APB1(2分频或0分频,或1分频)。 理论值: 从APB1出来的理论值最大为30M, 如果0/1分频得到的最大值为60M,换句话说给TIM3最大的时钟为60M. 实际值: 通过查看示波器,发现TIM3的实际时钟可以达到120M. 总述:二楼的兄弟写了(60M*2),这里是有点疑问,时钟树上给TIM3的最大值就是60M(是由最大30M*2=60M),不可能再乘以2.除非定时器TIM3内部又作了倍频,否则不可能达到120M,目前的资料上没有看到TIM3内部再倍频之说,这才是我的疑问所在,还请兄弟们发点有价值的贴子哦,万分感谢! |
|
|
|
学习了。
|
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
1276 浏览 1 评论
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
1209 浏览 3 评论
2288 浏览 0 评论
如何解决MPU-9250与STM32通讯时,出现HAL_ERROR = 0x01U
1372 浏览 1 评论
hal库中i2c卡死在HAL_I2C_Master_Transmit
1799 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-28 22:28 , Processed in 0.755182 second(s), Total 68, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号