PWM程序如下
void PWM_Init(u16 arr,u16 psc,u16 Z)
{
RCC->APB1ENR|=1<<1; //TIM3时钟使能
GPIOA->CRL&=0X0FFFFFFF;//PA7输出
GPIOA->CRL|=0XB0000000;//复用功能输出 PWM模式
TIM3->ARR=arr;//设定计数器自动重装值
TIM3->PSC=psc;//预分频器不分频
TIM3->CCMR1|=6<<12; //CH2 PWM2模式(高电平为占空比)
TIM3->CCMR1|=1<<11; //CH2预装载使能
TIM3->CCER|=1<<4; //OC2 输出使能
TIM3->CR1=0x8000; //ARPE使能
TIM3->CR1|=0x01; //使能定时器3
TIM3->CCR2|=Z; //占空比
}
主程序:
while(1)
{
PWM_Init(99,7199,5);//0°
delay_ms(5000);
PWM_Init(99,7199,10);//45°
delay_ms(5000);
PWM_Init(99,7199,15);//90°
delay_ms(5000);
PWM_Init(99,7199,20);//135°
delay_ms(5000);
PWM_Init(99,7199,5);//0°
delay_ms(5000);
}
下载后运行的实际结果是======>0°=>90°=>180° ,舵机不能反转
而不是程序对应的结果...=A=...
求各位大大帮分析为什么会出现这种情况...
此帖出自
小平头技术问答
一周热门 更多>