解决了 这样可以解决 需要的可以参考一下
int n = sp.BytesToRead;
byte[] TxData = new byte[n];
sp.Read(TxData, 0, n);
m = m + n;
this.Invoke((EventHandler)
(delegate
{
Array.Resize(ref TxData2, m);
TxData.CopyTo(TxData2, m - TxData.Length);
if (m == p)
{
byte[] data = new byte[p-2];
for (int i = 0; i < TxData2.Length -2;i++ )
{
data[i]=TxData2[i];
}
byte[] data2 = new byte[2];
data2[0] = TxData2[TxData2.Length - 2];
data2[1] = TxData2[TxData2.Length - 1];
byte[] data1 = new byte[2];
data1 = CRC16_C(data);
if (data1[0] == data2[1] && data1[1] == data2[0])
{
for (int j = 3; j <= m - 4; j = j + 2)
{
string s1 = TxData2[j].ToString();
string s2 = TxData2[j + 1].ToString();
string s = s1 + s2;
int g = Convert.ToInt32(s, 10);
string h = g.ToString();
textBox1.Text += h + " ";
}
textBox7.Text = "读取成功";
}
else
{
textBox7.Text ="读取失败";
}
m = 0;
}
}
)
);