定时器编程常用结构体

  • 定时器基本初始化结构体
  • 定时器句柄结构体
  • 定时器时钟配置结构体
  • 定时器输入捕获初始化结构体
  • 定时器输出比较初始化化结构体
  • 定时器从模式配置结构体
  • 定时器主模式结构体配置
  • 定时器刹车和死区时间配置结构体


定时器基本初始化结构体

swiftt 定时器 定时器prescaler_stm32


swiftt 定时器 定时器prescaler_蓝桥杯_02

Prescaler:定时器预分频设置,时钟源经过该分频器才是定时器时钟,它设定TIMx_Psc寄存器的值。可设置值范围为0~65535,实现1至65536分频(实际分频系数=TIMx_PSC+1),假设设置Prescaler=167,这样分频后的时钟是168MHz/ ( 167+1) =1MHz。
CouterMode:定时器计数方式,基本定时器只能向上计数,即TIMx_CNT只能从0开始递增。默认配置就是向上计数模式。高级还有向下,中心对齐模式1/2/3(中断产生位置不一样)
Period:定时器周期,可设置值为0~65535,设定TIMx_ARR寄存器值。在定时器预分频我们已经得到分频后的时钟为1MHz。Period的值我们设置为999,这样,定时器产生中断的频率为:1MHz/ ( 999+1) =1KHz,即为1ms的定时周期
ClockDivision:时钟分频,设置定时器时钟(CK_INT)频率与死区发生器以及数字滤波器(ETR、Tlx)所使用的死区及采样时钟(tDTs)之间的分频比。可选1分频(常用)、2分频、4分频。
RenetitionCounter:重复计数器,属于高级控制寄存器专用寄存器位,利用它可以非常轻松控制输出PWM的个数。

定时器句柄结构体

swiftt 定时器 定时器prescaler_swiftt 定时器_03


*lnstance:TIM寄存器基地址。

lnit:定时器基本设置初始化。

Channe1:定时器通道的选择,有四个通道。

*hdma[7]:定时器DMA相关。有TIMx_CH1、TIMx_CH2、TIMx_CH3、TIMx_CH4、TIMx_UP、TIMx_TRIG、TIMx_COM总共7种DMA请求。

Lock:资源锁机制。

State:定时器操作的状态。

定时器时钟配置结构体

swiftt 定时器 定时器prescaler_蓝桥杯_04

定时器输入捕获初始化结构体

swiftt 定时器 定时器prescaler_swiftt 定时器_05


lCSelection:输入捕获信号源选择:Tlx、TRC

ICPrescaler:输入捕获分频器:1、2、4、8分频

lCEilter:输入捕获滤波器:0~0xFF

lCPolarity:输入捕获极性,上升沿、下降沿、双边沿

定时器输出比较初始化化结构体

swiftt 定时器 定时器prescaler_初始化_06

定时器从模式配置结构体

swiftt 定时器 定时器prescaler_单片机_07


TriggerPolaritv:触发输入极性,ETR不反相(高电平或者上升沿有效)、ETR反相、TIx上升沿、Tlx下降沿、Tlx双边沿;

TrigserPrescaler:触发输入预分频:1、2、4、8分频;

TriggerEilter:触发输入滤波器(只用于ETR信号):0~0xFF。

定时器主模式结构体配置

swiftt 定时器 定时器prescaler_stm32_08


MasterOutputTrigger:主模式触发输出选择

swiftt 定时器 定时器prescaler_单片机_09


MasterSlaveMode:主从模式(既做主模式又做从模式):使能或者不使能

定时器刹车和死区时间配置结构体

swiftt 定时器 定时器prescaler_蓝桥杯_10