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()循环中,请教大家:我的代码有问题吗?有什么办法解决吗,谢谢!