从零开始学stm32(四)
前言
思考:
之前的LED亮灭间的时间间隔是如何处理,我们关注的重点是哪些?
- 计数器分辨率
- 计数方式
定时器概念:
- 软件模拟
- 计数器分辨率
- 计数方式
定时器的基本概念
主要功能
- 通过计数、计时的方式周期执行某件工作
- 应用场合:输入捕获、输出波形、计时
类型
- 硬件定时
- 硬件资源决定,精度由硬件时钟决定
- 单个硬件定时器可以扩充多个软件定时器
- 软件定时器 :由软件实现
stm32f10x定时器
- 两个看门狗、一个系统滴答定时器 + 8个timer定时器
- timer定时器
- 基本定时器(TIM6/7)
- 16位,只能向上计数,只能定时,没有外部IO
- 通用定时器(TIM2/3/4/5)
- 16位,可向上向下计数,可以定时、输出比较、输入捕捉
- 定时器有4个外部IO
- 高级定时器(TIM1/8)
- 16位,可向上向下计数,可定时、输出比较、输入捕捉,还有三相电机互补输出信号
- 定时器有8个外部IO
- 基本定时器(TIM6/7)
通用定时器基本原理
定时器基本组成
-
1、时钟源
- 外部时钟模式1:外部输入脚(TIx)
- 外部时钟模式2:外部触发输入(ETR)
- 内部触发输入(ITRx)
- 定时器时钟TIMxCLK,即内部CK_INT
- 时基单元(核心)+ 输入捕获 + 输出比较
-
2、时基单元
- 作用:计数,可向上向下计数
- 组成
- 计数器寄存器
- 预分频器寄存器
- 自动装载寄存器
- 计数模式
- 定时器溢出时间
- 计数器在CK_CNT的驱动下,计数时间是CK_CLK的倒数
- 定时器溢出时间为(ARR+1)*(PSC+1)/ TIMxCLK
- 定时器中断
- 更新:计数器向上溢出/向下溢出,计数器初始化(通过软件或者内部/外部触发)
- 触发事件
- 输入捕获
- 输出比较
- 支持针对定位的增量编码器和霍尔传感器电路
- 触发输入作为外部时钟或按周期的电流管理
-
3、定时器寄存器
-
CR1/CR2/SMCR 控制寄存器1/2从模式控制寄存器
-
DIER 、DMA 中断使能控制寄存器
-
SR 状态寄存器
-
EGR 事件产生寄存器
-
CCMR1、CCMR2 捕获比较模式寄存器
-
CCER 捕获比较使能寄存器
-
CNT 计数器
-
PSC 预分频器
-
ARR 自动重装载寄存器
-
CCR1、CCR2、CCR3、CCR4 捕获比较寄存器
-
DCR DMA控制寄存器
-
DMAR 连续模式的DMA地址
-
ARR 自动重装载寄存器
-
CCR1、CCR2、CCR3、CCR4 捕获比较寄存器
-
DCR DMA控制寄存器
-
DMAR 连续模式的DMA地址
-