程序发送命令后。
发送命令();
while(1)
{
if(接收数据()==成功) //在循环里面不停的读数据
{
错误=0;
break; //如果发出数据单片机能够及时回答, 当收到预期的数据时就会结束循环。
}
if(等待>某预定时间)
{
错误=超时;
break;
}
}
程序一直在while(1)循环里循环,直到收到单片机的回应或者通信超时。程序不能处理其他的事务,如数据的处理和显示。
这样,程序的执行效率是不是很低啊。所以我想用一个主线程(用做数据的处理和用户交互),两个副线程(一个发送数据,一个接受
数据)。发送线程发送一个命令后,挂起,不占用CPU的时间。接受线程如接受到一条完整的数据包(是否收到数据包的结束码),则唤醒发送线程,继续发送命令。即:用事件驱动的方式读写串口,但我以前没写过,手里也没有相关的资料。
Victor 帮帮我吧。
--------------------next---------------------
阅读(1145) | 评论(0) | 转发(0) |