目录
一,通用定时器
通用定时器:TIM2/TIM3/TIM4/TIM5在STM32F1系列中具有广泛的应用。
- 通用定时器是一个通过可编程预分频器驱动的16位自动装载计数器构成。
- 适用于多种场合,包括测量输入信号的脉冲长度(输入捕获)或者产生输出波形(输出比较和 PWM)。
- 使用定时器预分频器和RCC时钟控制器预分频器,脉冲长度和波形周期可以在几个微秒到几个 毫秒间调整
- 且 每个定时器都是完全独立的,没有互相共享任何资源。它们可以一起同步操作
TIMx的主要功能:
通用TIMx (TIM2、TIM3、TIM4和TIM5)定时器功能包括:
- 16位向上、向下、向上/向下自动装载计数器
- 16位可编程(可以实时修改)预分频器,计数器时钟频率的分频系数为1~65536之间的任意 数值
- 4个独立通道: ─ 输入捕获 ─ 输出比较 ─ PWM生成(边缘或中间对齐模式) ─ 单脉冲模式输出
- 使用外部信号控制定时器和定时器互连的同步电路
如下事件发生时产生中断/DMA: ─ 更新:计数器向上溢出/向下溢出,计数器初始化(通过软件或者内部/外部触发) ─ 触发事件(计数器启动、停止、初始化或者由内部/外部触发计数) ─ 输入捕获 ─ 输出比较
- 支持针对定位的增量(正交)编码器和霍尔传感器电路
- 触发输入作为外部时钟或者按周期的电流管理
1,时钟源(CLK):
- 时钟源是定时器的输入时钟,它可以是来自内部时钟源(系统时钟)或外部时钟源(外部触发输入或其它定时器)
- 定时器的工作频率由时钟源决定
2,控制器(Contor):
- 控制器模块用于配置和控制定时器的各种功能,包括分频器,自动重载寄存器,其它控制寄存器
- 预分频器用于将时钟源的频率分频
- 自动重在寄存器确定定时器溢出时间即定时计数器从0开始重新计数
3,时基单元
- 时基单元是定时器的核心部分,它实现了定时器的计数功能
- 计数器可以递增或递减,可以选择不同的计数方式和不同的计数方向
4,输入捕获
- 输入捕获模块用于捕获外部信号的时间戳
- 可以用于测量外部信号的脉冲宽度,周期或频率等特性
5,捕获/比较
- 捕获/比较模块可以用于捕获外部信号或执行比较操作
- 配置该模块以实现输入捕获,输出比较或PWM输出等功能
6,输出比较
- 输出比较用于产生PWM输出信号,控制外部设备的电平或速度
计数器的时钟由内部时钟(CK_INT)提供
计数器时钟源寄存器设置方法
计数器时钟选择类型 | 设置方法 |
内部时钟(CK_INT) | 设置TIMx_SMCR的SMS=000 |
外部时钟模式1:外部输入引脚(TIx) | 设置TIMx_SMCR的SMS=111 |
外部时钟模式2:外部触发输入(ETR) | 设置TIMx_SMCR的ECE=1 |
内部触发输入(ITRx) | 参考stm32F10xxx参考手册 |
二,高级定时器
高级定时器 |
:TIM1/TIM8
TIM1和TIM8主要特性:
- 16位向上、向下、向上/下自动装载计数器
- 16位可编程(可以实时修改)预分频器,计数器时钟频率的分频系数为1~65535之间的任意 数值
- 多达4个独立通道: ─ 输入捕获 ─ 输出比较 ─ PWM生成(边缘或中间对齐模式) ─ 单脉冲模式输出
- 死区时间可编程的互补输出
- 使用外部信号控制定时器和定时器互联的同步电路
- 允许在指定数目的计数器周期之后更新定时器寄存器的重复计数器
- 刹车输入信号可以将定时器输出信号置于复位状态或者一个已知状态
- 如下事件发生时产生中断/DMA: ─ 更新:计数器向上溢出/向下溢出,计数器初始化(通过软件或者内部/外部触发) ─ 触发事件(计数器启动、停止、初始化或者由内部/外部触发计数) ─ 输入捕获 ─ 输出比较 ─ 刹车信号输入
- 支持针对定位的增量(正交)编码器和霍尔传感器电路
- 触发输入作为外部时钟或者按周期的电流管理
1,重复计数器:
- 重复计数器是自动加载的,重复速率是由TIMx_RCR寄存器的值定义
- 当更新事件由 软件产生(通过设置TIMx_EGR 中的UG位)或者通过硬件的从模式控制器产生溢出,则无论重复计数 器的值是多少,立即发生更新事件,并且TIMx_RCR寄存器中的内容被重载入到重复计数器,从新计数。
2,输出比较:
- 输入部分对相应的TIx输入信号采样,并产生一个滤波后的信号TIxF。然后,一个带极性选择的 边缘监测器产生一个信号(TIxFPx),它可以作为从模式控制器的输入触发或者作为捕获控制。该 信号通过预分频进入捕获寄存器(ICxPS)。
3,断路功能:
- 断路功能提供保护机制,用于将定时器的输出信号与外部设备断开
- 触发某种特定事件时,断路功能会自动将定时器的输出信号断开
- 断路功能可以通过特定的配置来实现。