大神们好,最近才接触STM32,学到定时器中断,我想问下,为什么教程里的72M时钟,就要除以36000,得数为2000,表示1秒计数2000次?那除以72000得数为1000,不也是1秒计数到1000?这个2000,1000的数是初值吗?初值不应该是从该数计数到65536?为何是从0计数到该数呢?实在不明白,希望大神们指点!万分感谢!
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)获得
评分
查看全部评分
你说的36000和72000应该是预分频寄存器,但是寄存器是16位的,不可能出现72000,最大只有65535.
你说的2000或1000,应该是捕获/比较寄存器
具体计数的时候,应该是计数寄存器,这个寄存器什在变。
具体计数的时候,可以上计数,也可以下计数。
另外STM32F1系列参考手册RM0008,你值得拥有。
评分
查看全部评分
评分
查看全部评分
1000和2000与最大计数65535不是一回事,也就是说同样计数值到65535,计数速度的慢或快。
评分
查看全部评分
你仔细看一看,36000是不是代表36KHz?为了得到36Khz的中断频率,所以2000写入TIMx_ARR寄存器里面。一秒计数多少次 还得看你的timer的分频系数,72Mhz不分频那1秒还是会计数72000000次,1000分频就计数72000次。
所以2000只是为了配置中断频率,每秒计数多少次看分频系数
评分
查看全部评分
评分
查看全部评分
看下7楼吧