日期:2014-05-18  浏览次数:20890 次

串口发送命令
串口发送命令就是写入数据. 对吗?
serialPort1.Write(data, 0, data.Length);
这样就是对串口发送命令了吗?

------解决方案--------------------
serialPort1.Write(data, 0, data.Length);
 int n = this.serialPort1.BytesToRead;
byte[] buf = new byte[n];
 this.serialPort1.Read(buf, 0, n);

在计算机系统中最慢的部分是IO。
你的代码往串口写,然后执行线程马上就去执行(不考虑线程被抢占的情况)
 int n = this.serialPort1.BytesToRead;
这一句,CPU在执行这两句时的时间是非常短暂的。往往是程序执行到这里时,串口还没有这么快给出响应。所以你这里多数情况可能会是0.(当然也有不为0的可能)

正确的做法是使用serialPort1的接收事件。