image.png
    一些结构体

    定时器基本初始化结构体
    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来源。