附上STM32F407 定时器四路PWM代码

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/kiti1013/article/details/44160345
/********CYSY_Kiti1013***********/

void TIM4_PWM_Init(u16 arr,u16 psc)//PD12 PD13 PD14 PD15
{
	RCC->APB1ENR|=1<<2;//使能TIM4
	RCC->AHB1ENR|=1<<3;//使能GPIOD
	GPIO_Set(GPIOD,PIN12,GPIO_MODE_AF,GPIO_OTYPE_PP,GPIO_SPEED_100M,GPIO_PUPD_PU);
    GPIO_Set(GPIOD,PIN13,GPIO_MODE_AF,GPIO_OTYPE_PP,GPIO_SPEED_100M,GPIO_PUPD_PU);
    GPIO_Set(GPIOD,PIN14,GPIO_MODE_AF,GPIO_OTYPE_PP,GPIO_SPEED_100M,GPIO_PUPD_PU);
    GPIO_Set(GPIOD,PIN15,GPIO_MODE_AF,GPIO_OTYPE_PP,GPIO_SPEED_100M,GPIO_PUPD_PU);
	GPIO_AF_Set(GPIOD,12,2);
    GPIO_AF_Set(GPIOD,13,2);
    GPIO_AF_Set(GPIOD,14,2);
    GPIO_AF_Set(GPIOD,15,2);
	TIM4->ARR=arr;
	TIM4->PSC=psc;
	TIM4->CCMR1|=6<<4;//PWM1 mode
    TIM4->CCMR1|=6<<12;
	TIM4->CCMR1|=1<<3;//CH1预装载使能
    TIM4->CCMR1|=1<<10;//CH2
    TIM4->CCMR2|=1<<3;//CH3
    TIM4->CCMR2|=1<<10;//CH4
    TIM4->CCMR2|=6<<4;
    TIM4->CCMR2|=6<<12;
	TIM4->CCER|=0<<1;//OC1 高电平有效
	TIM4->CCER|=1<<0;//OC1使能
    TIM4->CCER|=1<<4;//OC2
    TIM4->CCER|=0<<5;//OC2
    TIM4->CCER|=1<<8;//OC3
    TIM4->CCER|=0<<9;//OC3
    TIM4->CCER|=1<<12;//OC4
    TIM4->CCER|=0<<13;//OC4 
	TIM4->CR1|=1<<7;//ARPE使能
	TIM4->CR1|=1<<0;//使能定时器4
   
}

猜你喜欢

转载自blog.csdn.net/kiti1013/article/details/44160345