Thread.Sleep(100);
int receiveData = serialPort1.BytesToRead; //读取缓存区字节数目
textBox15.Text = Convert.ToString(receiveData);//这里数据长度为40
DateTime ReadStartTime = DateTime.Now;
byte[] rdata=new byte[serialPort1.BytesToRead];
//try
//{
serialPort1.Read(rdata, 0, rdata.Length);
//}
// catch
//{
// MessageBox.Show("读取数据失败,请检查串口号", "失误");
//}
int q = 0;
q = serialPort1.BytesToRead;
textBox15.Text=textBox15.ToString() + " "+q;//这里的数据长度为0.
int i=0;
//for (i = 0; i < serialPort1.BytesToRead; )
//{
foreach (byte member in rdata)
{
Readbuff[i] = (byte)member;
i++;
// }
}
Thread.Sleep(10);
serialPort1.DiscardInBuffer();
serialPort1.DiscardOutBuffer();
analysisdata();//数据分析函数
Thread.Sleep(10);
在这个代码里面第一次分析接收的数据长度为40,后面的数据接收一直为0,我用的是Visual studio的framwork4.7版本。有人知道这是为什么吗?
更多回帖