本帖最后由 1010106127ycgxy 于 2017-9-15 17:47 编辑
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()循环中,请教大家:我的代码有问题吗?有什么办法解决吗,谢谢!
|