Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2350519
  • 博文数量: 816
  • 博客积分: 10000
  • 博客等级: 上将
  • 技术积分: 5010
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-17 17:57
文章分类

全部博文(816)

文章存档

2011年(1)

2008年(815)

分类:

2008-12-17 18:01:41

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




--------------------next---------------------

阅读(1145) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~