搜索
查看: 1450|回复: 7

[已解决] 定时器中断迷惑

[复制链接]

该用户从未签到

3

主题

7

帖子

0

蝴蝶豆

高级会员

最后登录
2019-3-4
发表于 2018-5-13 16:16:09 | 显示全部楼层 |阅读模式
       大神们好,最近才接触STM32,学到定时器中断,我想问下,为什么教程里的72M时钟,就要除以36000,得数为2000,表示1秒计数2000次?那除以72000得数为1000,不也是1秒计数到1000?这个2000,1000的数是初值吗?初值不应该是从该数计数到65536?为何是从0计数到该数呢?实在不明白,希望大神们指点!万分感谢!

评分

参与人数 1ST金币 -1 收起 理由
zero99 -1 发错板块

查看全部评分

回复

使用道具 举报

该用户从未签到

40

主题

250

帖子

92

蝴蝶豆

金牌会员

最后登录
2024-4-19
发表于 2018-5-14 17:07:23 | 显示全部楼层
你的问题我也遇到过
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)获得

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

回复 支持 1 反对 0

使用道具 举报

  • TA的每日心情
    开心
    2017-12-6 11:47
  • 签到天数: 1 天

    [LV.1]初来乍到

    49

    主题

    3724

    帖子

    429

    蝴蝶豆

    论坛元老

    最后登录
    2021-8-7
    发表于 2018-5-13 23:36:32 | 显示全部楼层
    这个得看手册呀有部分定时器最快72M时钟,还有部分宝器最快36M时钟。
    傲游截图20180513231845.jpg

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

    你说的2000或1000,应该是捕获/比较寄存器
    傲游截图20180513233143.jpg

    具体计数的时候,应该是计数寄存器,这个寄存器什在变。
    傲游截图20180513233250.jpg

    具体计数的时候,可以上计数,也可以下计数。
    傲游截图20180513233602.jpg

    另外STM32F1系列参考手册RM0008,你值得拥有。
    RM0008.pdf (12.49 MB, 下载次数: 0)

    评分

    参与人数 1蝴蝶豆 +4 收起 理由
    zero99 + 4

    查看全部评分

    回复 支持 1 反对 0

    使用道具 举报

    该用户从未签到

    64

    主题

    1138

    帖子

    140

    蝴蝶豆

    论坛元老

    最后登录
    2020-12-3
    发表于 2018-5-13 17:30:48 | 显示全部楼层
    这个是定时器的计数频率,而36000这样的是分频值,定时器的输入时钟频率是72M,但是一般都会进行分频来改变定时器的计数频率,这样定时器就可以工作在不同频率了

    评分

    参与人数 1蝴蝶豆 +3 收起 理由
    zero99 + 3

    查看全部评分

    回复 支持 反对

    使用道具 举报

    该用户从未签到

    74

    主题

    3420

    帖子

    82

    蝴蝶豆

    社区小助手

    最后登录
    2023-11-12
    发表于 2018-5-13 19:21:51 | 显示全部楼层
    本帖最后由 wenyangzeng 于 2018-5-13 19:24 编辑

    1000和2000与最大计数65535不是一回事,也就是说同样计数值到65535,计数速度的慢或快。

    评分

    参与人数 1蝴蝶豆 +2 收起 理由
    zero99 + 2

    查看全部评分

    回复 支持 反对

    使用道具 举报

    该用户从未签到

    14

    主题

    55

    帖子

    28

    蝴蝶豆

    高级会员

    最后登录
    2019-12-24
    发表于 2018-5-14 09:53:02 | 显示全部楼层
    本帖最后由 lvpeng-1619958 于 2018-5-14 09:58 编辑

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

    评分

    参与人数 1蝴蝶豆 +3 收起 理由
    zero99 + 3

    查看全部评分

    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2021-4-15 11:47
  • 签到天数: 537 天

    [LV.9]

    29

    主题

    2176

    帖子

    127

    蝴蝶豆

    论坛元老

    最后登录
    2024-4-24
    发表于 2018-5-14 16:02:26 | 显示全部楼层
    仔细阅读时钟树,STM32内部的时钟很多,最明显的是APB1和APB2的时钟频率都不一样

    评分

    参与人数 1蝴蝶豆 +2 收起 理由
    zero99 + 2

    查看全部评分

    回复 支持 反对

    使用道具 举报

    该用户从未签到

    40

    主题

    250

    帖子

    92

    蝴蝶豆

    金牌会员

    最后登录
    2024-4-19
    发表于 2018-5-14 17:08:52 | 显示全部楼层
    toofree 发表于 2018-5-13 23:36
    这个得看手册呀有部分定时器最快72M时钟,还有部分宝器最快36M时钟。

    看下7楼吧
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

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

    Archiver|手机版|小黑屋|论坛-意法半导体STM32/STM8技术社区

    GMT+8, 2024-5-12 18:05 , Processed in 1.258215 second(s), 56 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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