定时器特性
时基初始化结构体: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;