STM32定时器输入捕获,脉宽测量知识点

定时器特性

时基初始化结构体:TIM_TimeBaseInitTypeDef

typedef struct
{
  uint16_t TIM_Prescaler;

TIM_Prescaler:定时器预分频器设置,时钟源经该预分频器才是定时器计数时钟CK_CNT,它设定 PSC 寄存器的值。计算公式为: 计数器时钟频率 (fCK_CNT) 等于fCK_PSC / (PSC[15:0] + 1),可实现 1 至 65536 分频。

  uint16_t TIM_CounterMode; 

TIM_CounterMode:定时器计数方式,可设置为向上计数、向下计数以及中心对齐。高级控制定时器允许选择任意一种。

  uint16_t TIM_Period; 

TIM_Period:定时器周期,实际就是设定自动重载寄存器 ARR 的值, ARR 为要装载到实际自动重载寄存器(即影子寄存器) 的值, 可设置范围为 0 至 65535。

  uint16_t TIM_ClockDivision; 

TIM_ClockDivision:时钟分频,设置定时器时钟 CK_INT 频率与死区发生器以及数字滤波器采样时钟频率分频比。可以选择 1、 2、 4 分频。

  uint8_t TIM_RepetitionCounter;

TIM_RepetitionCounter:重复计数器,只有 8 位,只存在于高级定时器。
} TIM_TimeBaseInitTypeDef;

输入捕获结构体:TIM_ICInitTypeDef

typedef struct
{

  uint16_t TIM_Channel;   

TIM_Channel:捕获通道 ICx 选择,可选 TIM_Channel_1、 TIM_Channel_2、 TIM_Channel_3 或 TIM_Channel_4 四个通道。它设定 CCMRx 寄存器 CCxS 位 的值。

  uint16_t TIM_ICPolarity;  

TIM_ICPolarity:输入捕获边沿触发选择,可选上升沿触发、下降沿触发或边沿跳变触发。它设定 CCER 寄存器 CCxP 位和 CCxNP 位的值。

  uint16_t TIM_ICSelection; 

TIM_ICSelection:输入通道选择,捕获通道 ICx 的信号可来自三个输入通道,分别为 TIM_ICSelection_DirectTI、TIM_ICSelection_IndirectTI 或 TIM_ICSelection_TRC 它设定 CCRMx 寄存器的 CCxS[1:0]位的值。

  uint16_t TIM_ICPrescaler; 

TIM_ICPrescaler:输入捕获通道预分频器,可设置 1、 2、 4、 8 分频,它设定 CCMRx寄存器的 ICxPSC[1:0]位的值。如果需要捕获输入信号的每个有效边沿,则设置 1 分频即可。

  uint16_t TIM_ICFilter;  

TIM_ICFilter:输入捕获滤波器设置,可选设置 0x0 至 0x0F。它设定 CCMRx 寄存器ICxF[3:0]位的值。一般我们不使用滤波器,即设置为 0。
} TIM_ICInitTypeDef;

 

 

你可能感兴趣的:(STM32相关)