STM32 基本定时器

    小明妈妈跟小明说:“10分钟后,你再不给我去做作业我就揍你!”,接着,小明妈妈看着手表,1秒钟数1下,0,1,2,3,……,599。看看小明有没有做作业,根据情况判断要不要揍他。

    接着,小明妈妈又从0数起,到599,继续看看小明有没有做作业…… ……再数数…… ……

    于是,小明妈妈就是一个每隔10分钟监视一下小明有没有做作业的定时器,手表,就是小明妈妈定时器的时钟,小明妈妈数600个周期后(0~599),触发定时器中断,定时器中断里,判断小明有没有去做作业,没有,就揍他,有,就啥事也不做。

 

   STM32上的定时器,也是跟小明妈妈一样,是通过数数计时的,比如,数1个数是1秒,从0数到599,就是600秒(10分钟)了。

   STM32上的数数,可以正着数,从0~599,也可以倒着数,从599~0,还可以先正着数后倒着数,当然,小明妈妈也是可以的。

   那能不能不数600个数?数别的?可以的,只需要设置就行了。

   还能不能不1秒数一次,长一点或者短一点?也是可以的,只需要设置就行了。

   RM0033告诉我们,STM32F207有8个小明妈妈,TIM1~TIM8,资源非常丰富,当然,它也不仅仅只能用于数数,功能非常强大。

   为什么叫基本定时器呢?因为它们不仅用来计时,还有其他非常强大的功能,如PWM,脉宽测量等等。定时器,只是它的基本功能。

   我们今天,只讲数数功能,数到一定数后,就触发定时器中断,处理事件。换句话说,每隔一段特定的时间,触发特定的事件。

 

   我们就来做一个一秒的定时器吧,每隔1秒打印定时器开启时间。

 

    先打开Stm32CubeMx,新建一个工程,不懂建工程的请参考《STM32CubeMx 创建第一个工程》。

    建完之后,看TIMx(x=1,2,3……),这就是定时器。

    这里面有各种需要设置的地方,Slave Mode、Trigger Source、Clock Source、等等等。

   这是啥?看不懂,怎么办(黑人问号)???


 

    没关系,问一下RM0033,找到相关的部分,看介绍。

    它告诉我们,定时器包含16Bit自动重载计数器,由可编程预分频器组成。抱歉,翻译不是我的特长,大家大概看得懂意思就行啦。它还告诉我们,这些定时器有很多作用,像量输入信号脉冲宽度或者输出波形等等。还讲了脉宽测量的范围,从微秒级到毫秒级的。还说这几个小明妈妈是完全独立的,不过她们可以同步,具体的要参考一下Section 13.3.20

点到13.3.20,定时器可以连在一块,具体参考14.3.15。

 

    点到14.3.15,当一个定时器配置成Master Mode时,它能够复位,开始,停止,或者作为另外一个被配置成Slave Mode的定时器的时钟。

    由此可见,Slave Mode,主要用在两个以上的定时器上,具体有兴趣的朋友可以继续往下看资料,这里就不截图出来。

    它有Reset Mode、GateMode、Trigger Mode、External Clock Mode几种模式。

    我们这章节,不需要用到Slave Mode,所以,就选择 Disable。

 

    Trigger Source 选择,里面有ITR0、1、2、3等项目,怎么选择呢?

    ClockSource 选择,里面有Internal Clock,ETR,怎么选择呢?

    Channel1、2、3、4,以及以下的,如何设置呢?

    先来看一个图:

    图中标的1、2、3,就是Timer的ClockSource。

    图中标的4、5,是定时器的其它功能,如Pwm,脉宽测量等功能,我们这节课暂时不需要关注它。

 

再来看看 Clock selection 的说明:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值