TIM_TimeBaseInitTypeDef 基本初始化
TIM_OCInitTypeDef 比较输出初始化
TIM_ICInitTypeDef 输入捕获初始化
TIM_BDTRInitTypeDef 断路和死区初始化
TIM_TimeBaseInitTypeDef PS:定时器功能 (基本定时器、通用定时器、高级定时器)
//初始化TIM3,设置arr和psc
TIM_TimeBaseStructure.TIM_Period = arr; //自动重装载值
TIM_TimeBaseStructure.TIM_Prescaler =psc; //预分频系数
TIM_TimeBaseStructure.TIM_ClockDivision = 0; //设置时钟分割:TDTS = Tck_tim
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; //TIM向上计数模式
TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure); //初始化
TIM_OCInitTypeDef PS:输出PWM (通用定时器、高级定时器)
//初始化TIM1 Channel2 PWM模式
TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2; //PWM模式2
TIM_OCInitStructure.TIM_Pulse=40;//占空时间有40的时间为高,互补的输出正好相反
TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; //正向通道使能
TIM_OCInitStructure.TIM_OutputNState=TIM_OutputNState_Enable;//反向通道使能
TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low; //正向输出极性
TIM_OCInitStructure.TIM_OCNPolarity=TIM_OCNPolarity_Low;//反向的输出极性
TIM_OCInitStructure.TIM_OCIdleState=TIM_OCIdleState_Reset;//正向空闲状态下的非工作状态下
TIM_OCInitStructure.TIM_OCNIdleState=TIM_OCNIdleState_Reset;//反向空闲状态下的非工作状态下
TIM_ICInitTypeDef PS:做输入捕获 (通用定时器、高级定时器)
//初始化TIM5输入捕获参数
TIM5_ICInitStructure.TIM_Channel = TIM_Channel_1; //输入通道选择,共4个通道
TIM5_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_Rising; //上升沿捕获
TIM5_ICInitStructure.TIM_ICSelection = TIM_ICSelection_DirectTI; //输入通道选择,共3个通道
TIM5_ICInitStructure.TIM_ICPrescaler = TIM_ICPSC_DIV1; //输入捕获通道预分频1.2.4.8
TIM5_ICInitStructure.TIM_ICFilter = 0x00;//IC1F=0000 配置输入滤波器 不滤波
TIM_ICInit(TIM5, &TIM5_ICInitStructure);//初始化
TIM_BDTRInitTypeDef PS:输出互补PWM,所以要死区,断路保护 (高级定时器)
//TIM1死区和短路结构体配置
TIM_BDTRInitStructure.TIM_OSSRState = TIM_OSSRState_Enable;//运行模式下关闭状态选择
TIM_BDTRInitStructure.TIM_OSSIState = TIM_OSSIState_Enable;//空闲模式下关闭状态选择
TIM_BDTRInitStructure.TIM_LOCKLevel = TIM_LOCKLevel_1;//锁定配置
TIM_BDTRInitStructure.TIM_DeadTime = 0x80;//死区时间 0x00~0xff
TIM_BDTRInitStructure.TIM_Break = TIM_Break_Enable;//短路输入使能控制
TIM_BDTRInitStructure.TIM_BreakPolarity = TIM_BreakPolarity_Low;//断路输出极性
TIM_BDTRInitStructure.TIM_AutomaticOutput = TIM_AutomaticOutput_Enable;//自动输出使能
TIM_BDTRConfig(TIM1,&TIM_BDTRInitStructure);//初始化