void MainWindow::SendFrame(char *n, bool m)   //发送函数
{
     
 }
void MainWindow::slotReceiveData()   //串口接收函数
{
     uchar res;
     while(p_serial_port->read((char*)&res,1)>0)
     {              
         switch(frame_data[1])
         {
            case 1:
            { 
               send_frame = Y;
               break;
            }
            case 2:
            { 
                 SendFrame(n,m);         
                 while(send_frame!=Y)
                 {
                     //程序死在这里,出不来了
                    QApplication::processEvents();   //循环等待
                }               
                break;
            }             
         }                                      
     }
 }
在串口接收函数slotReceiveData(),使用QApplication::processEvents(); 上位机和下位机进行通信,case2上位机发送数据给下位机(SendFrame(n,m)),下位机应答case1返回,从而确认数据已经发出;但是像上面这样使用QApplication::processEvents(),是不是造成递归调用?现在程序死在while()循环中,请教大家:我的代码有问题吗?有什么办法解决吗,谢谢!