高级定时器与通用定时器比较类似,下面是一个TIM1的PWM程序TIM1是STM32唯一的高级定时器。共有4个通道有死区有互补。
先是配置IO脚:GPIO_I
itTypeDefGPIO_I
itStructure
PA8设置为功能脚PWMGPIO_I
itStructureGPIO_Pi
GPIO_Pi
_8GPIO_I
itStructureGPIO_ModeGPIO_Mode_AF_PPGPIO_I
itStructureGPIO_SpeedGPIO_Speed_50MHz
GPIO_I
itGPIOAGPIO_I
itStructurePB13设置为PWM的反极性输出GPIO_I
itStructureGPIO_Pi
GPIO_Pi
_13GPIO_I
itStructureGPIO_ModeGPIO_Mode_AF_PPGPIO_I
itStructureGPIO_SpeedGPIO_Speed_50MHz
GPIO_I
itGPIOBGPIO_I
itStructure
f开时钟PWM的与GPIO的RCC_APB2PeriphClockCmdRCC_APB2Periph_TIM1ENABLERCC_APB2PeriphClockCmdRCC_APB2Periph_GPIOAENABLERCC_APB2PeriphClockCmdRCC_APB2Periph_GPIOBENABLE配置TIM1TIM_TimeBaseI
itTypeDefTIM_TimeBaseStructureTIM_OCI
itTypeDefTIM_OCI
itStructurevoidTim1_Co
figuratio
voidTIM_TimeBaseI
itTypeDefTIM_TimeBaseStructureTIM_OCI
itTypeDefTIM_OCI
itStructure
TIM_DeI
itTIM1重设为缺省值TIM1时钟配置TIM_TimeBaseStructureTIM_Prescaler4000预分频时钟分频72M400018K
TIM_TimeBaseStructureTIM_Cou
terModeTIM_Cou
terMode_Up向上计数TIM_TimeBaseStructureTIM_Period144装载值18k144125hz就是说向上加的144便满了设置了时钟分割不懂得不管
TIM_TimeBaseStructureTIM_ClockDivisio
TIM_CKD_DIV1
fTIM_TimeBaseStructureTIM_Repetitio
Cou
ter0x0TIM_TimeBaseI
itTIM1TIM_TimeBaseStructure
周期计数器值不懂得不管初始化TIMx的时间基数单位
Cha
el1Co
figuratio
i
PWMmode通道一的PWMTIM_OCI
itStructureTIM_OCModeTIM_OCMode_PWM2PWM模式2
TIM_OCI
itStructureTIM_OutputStateTIM_OutputState_E
able正向通道有效PA8TIM_OCI
itStructureTIM_OutputNStateTIM_OutputNState_E
able反向通道也有效PB13TIM_OCI
itStructureTIM_Pulse40占空时间144中有40的时间为高,互补的输出正好相反
TIM_OCI
itStructureTIM_OCPolarityTIM_OCPolarity_Low输出极性TIM_OCI
itStructureTIM_OCNPolarityTIM_OCNPolarity_Low互补端的极性
TIM_OCI
itStructureTIM_OCIdleStateTIM_OCIdleState_Reset空闲状态下的非工作状态不管TIM_OCI
itStructureTIM_OCNIdleStateTIM_OCIdleState_Reset先不管TIM_OC1I
itTIM1TIM_OCI
itStructureTIM1cou
tere
able开定时器TIM_CmdTIM1ENABLE数初始化外设TIMx通道1这里20库为TIM_OCI
it
TIM1Mai
OutputE
able使能TIM1外设的主输出TIM_CtrlPWMOutputsTIM1ENABLE
f设置捕获寄存器1voidSetT1Pwm1u16pulseTIM1CCR1pulse操作寄存器改变占空时间TIM1的定时器通道时间1到4分别为PB8PA9PA10PA11而互补输出r