在原有代码基础上,加了几句,同时用PB0 PWM输出控制绿灯,但是初始化中有一句
“预装载使能”,我把这句话去掉了,不影响实验的正常结果,是什么原因?
代码如下:
void PWM_Init(u16 arr,u16 psc)
{
//此部分需手动修改IO口设置
RCC->APB1ENR|=1<<1; //TIM3时钟使能
RCC->APB2ENR|=1<<3; //PORTB端口使能
GPIOA->CRH&=0XFFFFFFF0;//PA8输出
GPIOA->CRH|=0X00000004;//浮空输入
GPIOD->CRL&=0XFFFFF0FF;//PD2输出
GPIOD->CRL|=0X00000400;//浮空输入
GPIOA->CRL&=0X0FFFFFFF;//PA7输出
GPIOA->CRL|=0XB0000000;//复用功能输出
GPIOA->ODR|=1<<7;//PA7上拉
GPIOB->CRL&=0XFFFFFFF0;//PB0输出
GPIOB->CRL|=0X0000000B;//复用功能输出
GPIOB->ODR|=1<<0;//PB0上拉
TIM3->ARR=arr;//设定计数器自动重装值
TIM3-> SC=psc;//预分频器不分频
TIM3->CCMR1|=7<<12; //CH2 PWM2模式
TIM3->CCMR1|=1<<11; //CH2预装载使能
TIM3->CCMR2|=7<<4; //CH3 PWM2模式
TIM3->CCMR2|=1<<3; //CH3预装载使能
TIM3->CCER|=1<<4; //OC2 输出使能
TIM3->CCER|=1<<8; //OC3 输出使能
TIM3->CR1=0x8000; //ARPE使能
TIM3->CR1|=0x01; //使能定时器3
}
|