如何使用STM32的通用定时器

一、确定功能实现(示例)

1、输入捕获:测量脉宽

时钟来源:外部输入引脚TI
计数方式:72MHz--1us精度,重装载值--65535,向上计数
主模式默认,从模式不开启。
捕获方式:上升沿捕获

2、输出比较:输出PWM(1MHz周期,脉宽2KHz)

计算周期 T o u t = ( A R R + 1 ) ∗ ( P S C + 1 ) F t T_{out}=\frac{(ARR+1)*(PSC+1)}{F_{t}} Tout=Ft(ARR+1)(PSC+1)

时钟来源:内部时钟来源
计数方式:ARR决定PWM周期,CCR决定PWM占空比,递增计数
		ARR = 72 - 1,CCR = 500 -1;
主模式默认,从模式失能。
输出模式:PWM模式1,输出通道输出极性为:低电平有效

3、普通计时器:定时500ms = (5000*7200) / 72MHz

时钟来源:内部时钟来源
计数方式:72MHz--1us精度,重装载值--5000,向上计数
主模式默认,从模式失能。

二、确定计数方式

计数的精度(分频)、计数上限(重载值)、向上&向下

三、确定时钟源

	内部时钟AHB:普通计数计时器
	外部输入TI(TIMx_CH):输入捕获、编码器模式、PWM 输入
	外部触发ETR(IO):触发定时器启动、停止、复位或作为时钟源
	内部触发ITR:一个定时器作另一个定时器的预分频器(不常用)

四、确定主、从模式

(默认启用主模式的复位模式,关闭从模式)

​ ​ ​ ​常用的模式场景示例

定时器同步操作	主:更新/使能					从:触发
时间间隔测量		主:复位                  	从:复位
事件驱动计数		主:比较脉冲/OC1REF			从:触发模式
正交编码器处理	主:使能                     从:编码器模式

1、主模式选择–(默认复位模式)

复位:当定时器产生更新事件时,输出一个复位信号。通常用于从定时器的复位。(默认使用改模式)
使能:当定时器启用时,输出一个使能信号。 
更新:当定时器产生更新事件时,输出一个触发信号。
比较脉冲:当定时器的比较寄存器与计数器值匹配时,输出一个脉冲信号
比较 OC1REF、OC2REF 、OC3REF 、OC4REF模式。

2、从模式选择–(默认关闭)

复位模式:测量两个信号之间的时间间隔
门控模式:在特定时段内允许定时器计数。
触发模式:定时器在收到外部事件后开始工作,例如同步事件触发 
外部时钟模式:使用外部信号源(如方波、脉冲)来控制定时器的计数 
编码器模式:用于读取正交编码器的位置信息(仅TI1、TI2)

五、对应模式的设置

输入捕获:

通道映射选择:TI1、TI2、TI3、TI4
捕获极性:上升沿、下降沿、双边沿
滤波器:可以为输入信号配置滤波器,以滤除高频噪声。
输入预分频器:可以为输入信号设置预分频器,减慢输入信号的处理速率。例如,预分频为 2 时,每两个输入脉冲处理一次。

输出比较:

输出模式:OCxM配置,如下表
输出极性:高电平有效、低电平有效
比较值:CCR的值(可使用函数修改:__HAL_TIM_SET_COMPARE())
输出状态:使能
输出通道:TIMx_CH1、TIMx_CH2、TIMx_CH3、TIMx_CH4
OCxM 配置值模式名称描述
000冻结(Frozen)当计数器与比较值匹配时,输出保持不变。
001活动电平(Set Active)当匹配时,将输出引脚设置为高电平。
010非活动电平(Set Inactive)当匹配时,将输出引脚设置为低电平。
011切换(Toggle)当匹配时,输出引脚电平反转(高电平变为低电平,低电平变为高电平)。
100强制为低(Force Inactive)强制将输出引脚设置为低电平(忽略比较事件)。
101强制为高(Force Active)强制将输出引脚设置为高电平(忽略比较事件)。
110PWM 模式 1计数器小于比较值时输出为高电平,计数器大于比较值时输出为低电平。
111PWM 模式 2计数器小于比较值时输出为低电平,计数器大于比较值时输出为高电平。

六、事件

  1. 更新事件
    当定时器的计数器(CNT)溢出或者重新加载时,产生更新事件。这通常发生在计数器达到自动重装载寄存器(ARR)的值时。
  2. 捕获比较事件
    当定时器的计数器值与某个捕获/比较寄存器(CCR1、CCR2 等)中的值匹配时,产生捕获或比较事件。
  3. 触发事件
    触发事件是用于同步定时器或外部硬件的事件。当定时器配置为主定时器或从定时器时,主定时器可以通过触发事件启动从定时器。
  4. 中断事件
    定时器产生的各种事件(如更新事件、捕获/比较事件等)可以通过中断机制通知 CPU。
  5. 溢出事件
    溢出事件类似于更新事件,但它只发生在计数器向上计数超过最大值时(上溢出),或向下计数低于最小值时(下溢出)。

通用定时器框图

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值