111,094
社区成员




private void S1Com_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
int count=0;
if (S1Com.IsOpen)
{
try
{
Listening = true;
int n = S1Com.BytesToRead;
Byte[] receivedData = new byte[n]; //创建接收字节数组
S1Com.Read(receivedData, 0, n); //读取数据
//S1Com.DiscardInBuffer();
buffer1.AddRange(receivedData);
if (buffer1.Count == 36)
{
buffer1.CopyTo(0, HexData_1, 0, 36);
string strResult1 = Encoding.ASCII.GetString(HexData_1);
this.txtBoxS1.Invoke((EventHandler)(
delegate
{
this.txtBoxS1.Text = Encoding.ASCII.GetString(HexData_1);
}));
TestResult1(strResult1);
}
}
catch (System.Exception ex)
{
MessageBox.Show(ex.Message, "出错提示");
txtBoxS1.Text = "";
}
finally
{
Listening = false;
}
}
}
S1Com.Read(receivedData, 0, n);
这个方法的超时时间,也就是说如果这个方法可以一直读取到数据就不存在超时的问题。