STM32自学历程——TIM定时器中断

本文介绍了STM32中TIM定时器中断和EXTI外部中断的区别,探讨了预分频器的作用以及如何计算计数间隔,以帮助读者理解通用定时器的工作原理。
摘要由CSDN通过智能技术生成

首先感谢

        首先感谢江科大老师的STM32视频教程,真的简单易懂!十分推荐!

TIM定时器中断和EXTI外部中断的区别

       EXTI是外部中断,是通过外部情况作为触发,当产生高低电平变化时就执行中断;

       TIM定时器是靠内部中断,当计数器计到一定值后,就发送高电平,然后执行中断。

时基单元

        以通用定时器举例,如上图所示。

什么是预分频器

        将72Mhz的主频进行分频,因为72Mhz意味着1秒通过72000000个波形,即有72000000个上升沿通过,而计数器的最大计数值为65535,每一个上升沿记一次数,最大计数65535,若寄存器没有设置值,则默认计数到65535计数清零。所以为了让计数值变慢,就要对主频进行分频,预分频器的分频原则如下:

0

不分频

1

分成两个频为:36MHZ

2

分成三个频为:12MHZ

自动重装载寄存器

自动重装载寄存器的作用是给计数器一个计数终点值,如果计数器计到了终点值,则计数器清零

分频器是怎么分频的

CK_CNT是分频后的频率,CK_PSC是主频时钟,PSC是预分频值,这里+1是因为算法。预分频器的工作本质是如果预分频器的值为0,则主频时钟怎么变,就怎么变,如果预分频器的值设为1,则意味着在相邻的0之间插入个1,是0则有波形,不是0就没有波形。预分频值为2,则意味着在相邻的0之前插入1、2,是0则有波形,不是0就没有波形,所以就相当于通过在0与0之间加入非0数字从而实现延时。关系如下:

0

0000000000

1

0101010101

2

0120120120

如何计算自己要计数的间隔

这是官方的计算方法:

这是我的计算方法:

        ARR表示自动重装值,预分频器减1是因为当值为0时,预分频器不分频,而ARR为什么要减1呢?因为ARR是从0开始计数的,从0计到10要计数11次,所以为了便于理解,所以减1。就比如,当预分频系数为7200,要1s计一次数的话,就要让ARR为10000,但此时ARR其实是计数了10001次的,实际上只要计到9999就可以了。

  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值