STM32互补输出在第六届国赛中有用到。互补输出就是两个通道,一个输出一定频率、占空比的PWM,而和他互补的通道输出相反的方波。(就是A通道高电平B就低电平)
-
程序
程序部分和普通PWM配置差不多,只是打开了互补输出而已。void PWM(uint16_t Peroid, uint16_t duty) { TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; TIM_OCInitTypeDef TIM_OCInitStructure; GPIO_InitTypeDef GPIO_InitStructure; uint16_t TimerPeriod = 1000000/Peroid; //定时器周期 uint16_t duty1 = duty*TimerPeriod/100; //比较值 RCC_APB2PeriphClockCmd( RCC_APB2Periph_TIM1 | RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB |RCC_APB2Periph_AFIO, ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOA, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_14; GPIO_Init(GPIOB, &GPIO_InitStructure); TIM_TimeBaseStructure.TIM_Prescaler = 71; TIM_TimeBaseStructure.TIM_CounterMode =