32战舰版的串口接受不能多次接受

2019-07-21 04:15发布

函数前面有串口的初始化void Angle(float angleSet){
        float angleTime=0;
         angleTime=0.5+angleSet/90;  //ms
angleTime=2000-angleTime*100;
                        TIM_SetCompare2(TIM3,angleTime);       
}
void USART1_IRQHandler(void)
{
        u8 res;
         if(USART_GetITStatus(USART1,USART_IT_RXNE))
{
     res= USART_ReceiveData(USART1);
                                Angle(res);       
     USART_SendData(USART1,res);   
  }
}

       
int main(void)
{               
//         u8 Resive=0;
//         u16 adcx=0;       
         My_USART1_Init();
        delay_init();                     //延时函数初始化          
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);          //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
//        uart_init(115200);         //串口初始化为115200波特率
        LED_Init();                             //LED端口初始化
//         Adc_Init();                                  //ADC初始化         
        TIM3_PWM_Init(1999,719);         //不分频。T=(1999+1)*(719+1)/72=20000us=20ms  

           while(1)
        {
////                                Resive=USART_ReceiveData(USART1);
//                                        Angle(Res);               

//                                adcx=Get_Adc_Average(ADC_Channel_1,10);
        }         
}
Angle函数是对PWM波占空比对舵机的转换。
这个程序是电脑对串口发送数据来改变占空比来使舵机角度的变换。
但是这个程序可以读取多次数据但是只能进行一次的PWM波转换,即只能舵机只能改变一次角度。
但是我想要程序实现的是电脑一发送数据舵机就立刻转变角度,可以多次实现


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。