一些结构体
定时器基本初始化结构体
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
TIM_TimeBaseInit();
参数 | 代码 | 备注 |
---|---|---|
计数 | TIM_Period | arr |
预分频数 | TIM_Prescaler | psc |
时钟分割 | TIM_ClockDivision | 通常用于输入捕获PWM直接等于0,即TIM_CKD_DIV1 |
计数模式 | TIM_CounterMode | 向上、向下、向上/向下1、向上/向下2 (习惯向上) |
重复计数寄存器 | TIM_RepetitionCounter | 一般在高级定时器中使用,设定值x即为重复溢出x次才给你来一个溢出中断。(习惯取0) |
定时器比较输出初始化结构体
TIM_OCInitTypeDef TIM_OCInitStruct;
TIM_OCxInit();
参数 | 代码 | 备注 |
---|---|---|
选择定时器模式 | TIM_OCMode | PWM模式一般选TIM_OCMode_PWM1 |
比较输出使能 | TIM_OutputState | ENABLE/DISABLE(PWM模式下选ENABLE) |
比较输出极性(决定定时器通道有效电平的极性) | TIM_OCPolarity | 高/低 |
定时器输入捕获初始化结构体
TIM_ICInitTypeDef TIM_ICInitStructure;
TIM_ICInit();
参数 | 代码 | 备注 |
---|---|---|
输入通道 | TIM_Channel | TIMChannelx |
输入捕获滤波器长度 | TIM_ICFilter | 一般不用,设置为0。这个值不能随便写,比如捕获上升沿时,高电平持续时间很短,大概2个计数器时钟周期,此时就不能N>1了,毕竟还没采样完,高电平持续时间就结束了。 |
输入捕获边沿触发 | TIM_ICPolarity | 选择是上升沿捕获、下降沿捕获还是上升沿、下降沿都捕获(TIM1~5、TIM8不支持双边沿检测) |
输入捕获通道预分频系数 | TIM_ICPrescaler | 共(1、2、4、8)四种,预分频系数为x即为捕获在捕获输入上每探测到x个边沿执行一次。(一般不 分 频,选1即可) |
设置通道映射关系 | TIM_ICSelection | DirectTI,则由TI1作为IC1来源。 IndirectTI,则由TI2作为IC1来源。TRC,则由TRC作为IC1来源。 |