发 帖  
张飞软硬开源基于STM32 BLDC直流无刷电机驱动器开发视频套件, 👉戳此立抢👈
[问答] 定时器中断为什么教程里的72M时钟,就要除以36000,得数为2000,表示1秒计数2000次?
398 定时器 STM32
分享
       大神们好,最近才接触STM32,学到定时器中断,我想问下,为什么教程里的72M时钟,就要除以36000,得数为2000,表示1秒计数2000次?那除以72000得数为1000,不也是1秒计数到1000?这个2000,1000的数是初值吗?初值不应该是从该数计数到65536?为何是从0计数到该数呢?实在不明白,希望大神们指点!万分感谢!
0
2019-1-11 09:29:42   评论 分享淘帖 邀请回答
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)获得
2019-1-11 09:38:57 评论

举报

这个得看手册呀有部分定时器最快72M时钟,还有部分宝器最快36M时钟。


你说的36000和72000应该是预分频寄存器,但是寄存器是16位的,不可能出现72000,最大只有65535.


你说的2000或1000,应该是捕获/比较寄存器


具体计数的时候,应该是计数寄存器,这个寄存器什在变。


具体计数的时候,可以上计数,也可以下计数。


另外STM32F1系列参考手册RM0008,你值得拥有。
2019-1-11 09:51:44 评论

举报

这个是定时器的计数频率,而36000这样的是分频值,定时器的输入时钟频率是72M,但是一般都会进行分频来改变定时器的计数频率,这样定时器就可以工作在不同频率了
2019-1-11 09:57:35 评论

举报

本帖最后由 wenyangzeng 于 2018-5-13 19:24 编辑

1000和2000与最大计数65535不是一回事,也就是说同样计数值到65535,计数速度的慢或快。
2019-1-11 10:11:07 评论

举报

本帖最后由 lvpeng-1619958 于 2018-5-14 09:58 编辑

你仔细看一看,36000是不是代表36KHz?为了得到36Khz的中断频率,所以2000写入TIMx_ARR寄存器里面。一秒计数多少次 还得看你的timer的分频系数,72Mhz不分频那1秒还是会计数72000000次,1000分频就计数72000次。
所以2000只是为了配置中断频率,每秒计数多少次看分频系数
2019-1-11 10:26:28 评论

举报

仔细阅读时钟树,STM32内部的时钟很多,最明显的是APB1和APB2的时钟频率都不一样
2019-1-11 10:38:04 评论

举报

zhouxk 发表于 2019-1-11 17:25
这个得看手册呀有部分定时器最快72M时钟,还有部分宝器最快36M时钟。

看下7楼吧
2019-1-11 10:45:34 评论

举报

2019-1-11 14:11:35 评论

举报

2019-1-11 14:11:53 评论

举报

2019-1-11 14:12:09 评论

举报

撰写答案

你正在撰写答案

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

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

我要提问
课程
    关闭

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

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