void PWM_Init(u16 arr,u16 psc)
{
RCC->APB1ENR|=1<<1; //TIM3时钟使能
RCC->APB2ENR|=1<<3; //IO端口PB使能
GPIOB->CRL&=0XFF00FF00;//PB0,1,4,5输出
GPIOB->CRL|=0X00BB00BB;//复用功能输出
GPIOB->ODR|= 0X33;//IO口上拉
RCC->APB2ENR|=1<<0; //开启AF辅助时钟
AFIO->MAPR&=0XFFFFF3FF; //清除 MAPR 的[11:10]
AFIO->MAPR|=2<<10; //部分重映像,TIM3_CH2->  B5
// TIM3->BDTR &= 0xFCFF;
// TIM3->BDTR |= 0x0E00;
TIM3->ARR=arr;//设定计数器自动重装值
TIM3->  SC=psc;//预分频器不分频
TIM3->CCMR1|=6<<4; //CH1 PWM2模式
TIM3->CCMR1|=1<<3; //CH1预装载使能
TIM3->CCMR1|=6<<12; //CH2 PWM2模式
TIM3->CCMR1|=1<<11; //CH2预装载使能
TIM3->CCMR2|=6<<4; //CH3 PWM2模式
TIM3->CCMR2|=1<<3; //CH3预装载使能
TIM3->CCMR2|=6<<12; //CH4 PWM2模式
TIM3->CCMR2|=1<<11; //CH4预装载使能
TIM3->CCER|=1<<0; //OC1 输出使能
TIM3->CCER|=1<<4; //OC2 输出使能
TIM3->CCER|=1<<8; //OC3 输出使能
TIM3->CCER|=1<<12; //OC4 输出使能
// TIM3->CR1=0x8000; //ARPE使能
TIM3->CR1|=0x01; //使能定时器3
}
|