目录
STM32的定时器概述
STM32F1有TIME1和TIME8 等高级定时器,也有TIME2~TIME5等通用定时器,还有TIME6和TIME7等基本定时器。
关于高级定时器、通用定时器、基本定时器的区别:
基本定时器:具有最基本的计时功能,与通用和高级定时器的16位自动重装载计数器不同,他的计数器是一个累加计数器!基本定时器独有一个其他定时器没有的DAC的同步电路!
通用定时器:能满足大部分使用需求的定时器。
高级定时器:高级的骚操作比较多的定时器,但是一般不常用到,用到的时候可以再根据参考手册深入研究。
我们一般常用到的就是通用定时器。
通用定时器
通用定时器简介
主要功能
- 16位向上、向下、向上/向下自动装载计数器
- 16位可编程(可以实时修改)预分频器,计数器时钟频率的分频系数为1~65536之间的任意数值
- 4个独立通道:
- 输入捕获
- 输出比较
- PWM生成(边缘或中间对齐模式)
- 单脉冲模式输出
- 使用外部信号控制定时器和定时器互连的同步电路
- 如下事件发生时产生中断/DMA:
- 更新:计数器向上溢出/向下溢出,计数器初始化(通过软件或者内部/外部触发)
- 触发事件(计数器启动、停止、初始化或者由内部/外部触发计数)
- 输入捕获
- 输出比较
- 支持针对定位的增量(正交)编码器和霍尔传感器电路
- 触发输入作为外部时钟或者按周期的电流管理
加色处理的功能都是非常重要的常用功能!
模块框图
通用定时器框图如下所示,红色框是计数器部分,当仅使用计数器模式的时候,只涉及这部分。在定时器的基础上,还有下方的捕获/比较通道,输入通道可用于输入捕获(蓝色部分)和输出通道可用于输出PWM(绿色部分),与上面主要功能的颜色对应。本文只涉及到红色部分,也就是定时器的计数单元!输入捕获、PWM和DMA在后文写。
时钟来源
通用定时器的时钟来源有四个,具体选择哪个可以通过 TIMx_SMCR 寄存器的相关位来设置。
- 内部时钟(CK_INT)
- 外部时钟模式1:外部输入脚(TIx)
- 外部时钟模式2:外部触发输入(ETR)
- 内部触发输入(ITRx):使用一个定时器作为另一个定时器的预分频器