STM32定时器的整体概述
引言
大家好久不见,由于一些原因和事情的拖拉,关于STM32后续内容迟迟没有更新,当然,现在开始,我将慢慢把STM32后续介绍提上日程,继续讲述。
前面,我们学习了相对简单常见的外设模块,包括GPIO、中断、串口以及I2C等内容,接下来,我们继续学习另一个外设——定时器。实际上,在前面最初点灯的时候,我们就早早接触过多次其中一个定时器了,当时用来定义延时函数来着,即系统滴答定时器。所以我们基本能够想到定时器大概可以用来做什么了——计时、定时等等。当然,这只是定时器最基础的功能。在STM32中,定时器被分为了多类,按功能的多少和复杂性来看可以分为低配版、标准版以及高配版。
那么闲话少叙,接下来,我们先对STM32中的定时器做一个整体的认知。
一、STM32中的定时器
要认识某款单片机中的外设,最权威的还是去查看其数据手册和参考手册。因此,我们打开STM32F103系列芯片的数据手册,其首页即可看到对STM32单片机模块的基础介绍,如下图所示。
从图中可以看出,STM32中多达11个定时器。然后细看其中内容可以发现还进行了分类:
1、4个16为定时器(有输入捕获、输出比较、pwm、脉冲计数等等功能),这实际上是STM32定时器最常用的功能,因此属于前面所认为的“标准版”定时器,用其手册上描述即为通用定时器;
2、2个16位定时器(带死去控制、紧急刹车、电机控制等高级控制),停这功能描述就能感觉到很牛的样子,实际上也确实,这些功能算是比较高级的功能了,因此属于前面所说的“高配版”,用手册上的描述即为高级定时器;
3、2个看门狗定时器,关于看门狗的内容咱还没有涉及,不过前面应该提过,这个主要是在系统安全或者警告的地方会涉及,当然他们本质上也是一个定时器。
4、系统时间定时器,24位自减型计数器,这就是我们前面用来实现延时功能的系统滴答定时器了,相信大家相对也熟悉一些,他是一个自减型的,功能相对也简单很多,后续对各个定时器作详细介绍时首先就是该定时器介绍,这里就先不详细说;
5、2个16位基本定时器(用于驱动DAC),这个的功能相对前面的16位定时器会简单很多,这也就对应前面所说的“低配版”,用手册上的话来说即为基本定时器。
总结一下,根据数据手册首页可以看出,STM32定时器功能还比较丰富,包括基本定时器、通用定时器、高级定时器、系统定时器以及看门狗定时器。通过这里的介绍,我们大致了解了定时器的功能,但不清楚其如何命名等等。因此接下来,我们再看看手册后面的介绍。
二、常用定时器的命名
在手册首页我们笼统的介绍了STM32芯片中包括的所有定时器,而一般我们使用的功能主要集中在前四类定时器上,在常用一些来说的话应该是集中在前三类定时器上。
我们来看数据手册的【器件一览】,如下图所示。
我们可以看见,这里所示的定时器分类就三类,通用定时器、高级控制定时器以及基本定时器,这也是我们后续要介绍了几类常用的定时器。从图中可以看见,STM32对定时器的命名是用大写字母TIM记录的,“TIM”就是Timer定时器的缩写大写,可以这样来记忆。
然后可以发现:
1、属于“标准版”的通用定时器有四个,分别是TIM2、TIM3、TIM4、TIM5,也就是2345;
2、属于“高配版”的高级定时器有两个,分别是TIM1和TIM8,即1和8;
3、属于“低配版”的基本定时器也是两个,分别是TIM6和TIM7,即6和7;
当然了,这主要是针对我们学习的F103系列的STM32芯片而言,其他系列的芯片得查看对应手册进行判断,可能有所差别。
也就是说,STM32中的纯纯的定时器器件准确说一共是8个,对应TIM1~8,这样挺好记忆。
三、小结
本次我们主要对STM32中的定时器功能以及类别做了一个基本的介绍,了解到其多达11个定时器,完整来看有五类定时器,严格来看主要是三类定时器(基本、通用、高级控制),然后加上一个系统定时器,三类最常用的定时器以TIMx命名,其中“x”为对应的序号。好了,以上就是我们对STM32定时器的一个整体介绍。后面,我们将详细聊聊各类定时器的功能、用法以及代码实现。
以上便是本次文章的所有内容,欢迎各位朋友在评论区讨论,本人也是一名初学小白,愿大家共同努力,一起进步吧!
鉴于笔者能力有限,难免出现一些纰漏和不足,望大家在评论区批评指正,谢谢!