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

关于串口BytesToRead属性的奇怪问题!!!
上位机接收下位从串口传送的数据:(上位机每读取一次下位机就发上来32个字节)
  private static int ReadSize; //读取缓冲区的大小
  ……
  ReadSize = serialPort.BytesToRead;
  serialPort.Read(Read_Buffer, 0, ReadSize);
  ……

问题出在红色代码部分,比如第一次读取时 serialPort.BytesToRead=0x20,但执行该语句后ReadSize的值依然是0;再读取一次,ReadSize(0x30)的值就改变了,但也并不等于serialPort.BytesToRead(0x50) 请问这是为什么?弄了很久都没搞明白原因,请高手们解惑!

------解决方案--------------------
private static int ReadSize;不要把ReadSize定义成static