串口中断接收数据,无法判断

2019-10-15 21:06发布

利用战舰开发板,通过串口1中断接收数据,然后电脑中通过sscom4.2向stm32发送数据,stm32串口能够接收到数据,但是在串口中断函数中,无法判断接收到的数据,具体代码如下所示:
void USART1_IRQHandler(void)                        //串口1中断处理程序
        {
        u8 Res;
        if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET)  
                {
                        Res =USART_ReceiveData(USART1);        //接收电脑发送的数据
                        USART_SendData(USART1,Res);            //向电脑回传接收到的数据,能正确的接收到数据
               
                        switch(Res)                                //电脑发送0x99,串口能够接收到0x99,但是程序中不会执行switch段程序 ,但是发送0x31的时候则电脑端能接收到yes,而且改成0x51,0x61等只要后面有1。。switch程序不改,电脑端也能接收到yes,这一点很奇怪
                        {
                                case 0x31:
                                        printf("yes ");
                                        break;
                                case 0x99:
                                        printf("no ");
                                        break;
                        }

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