完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
大神们好,最近才接触STM32,学到定时器中断,我想问下,为什么教程里的72M时钟,就要除以36000,得数为2000,表示1秒计数2000次?那除以72000得数为1000,不也是1秒计数到1000?这个2000,1000的数是初值吗?初值不应该是从该数计数到65536?为何是从0计数到该数呢?实在不明白,希望大神们指点!万分感谢!
|
|
相关推荐
10个回答
|
|
你的问题我也遇到过
1楼@toofree说的很好 但是看不懂 我知道你在问什么 但是说不好 请一楼看下 72M是72 000 000 MHZ 先分频(也就是找一个分母拿去等分)比如72 00(楼主数据有误 这里最大是65535) 得到的结果是72 000000/72 00=1 0000HZ 频率和周期互为倒数 所以T=1/10000=0.0001s也就是0.1ms记一个数。 现在在设置一个初值,比如向上计数器(从0开始)初值设为1000 那就是记了1000个数 它的溢出时机是1000*0.1ms=0.1s也就是100ms 所以这个定时器就是100ms的 这就是定时器的两个参数。 其实可以直接72M/(7200*1000)获得 |
|
|
|
这个得看手册呀有部分定时器最快72M时钟,还有部分宝器最快36M时钟。
你说的36000和72000应该是预分频寄存器,但是寄存器是16位的,不可能出现72000,最大只有65535. 你说的2000或1000,应该是捕获/比较寄存器 具体计数的时候,应该是计数寄存器,这个寄存器什在变。 具体计数的时候,可以上计数,也可以下计数。 另外STM32F1系列参考手册RM0008,你值得拥有。 |
|
|
|
这个是定时器的计数频率,而36000这样的是分频值,定时器的输入时钟频率是72M,但是一般都会进行分频来改变定时器的计数频率,这样定时器就可以工作在不同频率了
|
|
|
|
本帖最后由 wenyangzeng 于 2018-5-13 19:24 编辑
1000和2000与最大计数65535不是一回事,也就是说同样计数值到65535,计数速度的慢或快。 |
|
|
|
本帖最后由 lvpeng-1619958 于 2018-5-14 09:58 编辑
你仔细看一看,36000是不是代表36KHz?为了得到36Khz的中断频率,所以2000写入TIMx_ARR寄存器里面。一秒计数多少次 还得看你的timer的分频系数,72Mhz不分频那1秒还是会计数72000000次,1000分频就计数72000次。 所以2000只是为了配置中断频率,每秒计数多少次看分频系数 |
|
|
|
仔细阅读时钟树,STM32内部的时钟很多,最明显的是APB1和APB2的时钟频率都不一样
|
|
|
|
|
|
|
|
儿科的了,
|
|
|
|
看来是严重的新手啊
|
|
|
|
多新手的新手啊
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
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-21 20:39 , Processed in 0.618686 second(s), Total 60, Slave 53 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号