STM32用PWM输出驱动舵机出现的奇怪现象

2019-03-23 19:33发布

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=...

求各位大大帮分析为什么会出现这种情况... 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。