贴出代码
1.线程循环发送
public void PortListenThread()
{
while (true)
{
byte[] query = new byte[8] { 0x01, 0x02, 0x00, 0x00, 0x00, 0x10, 0x79, 0xC6 };
serPort.DiscardInBuffer();
serPort.Write(query, 0, query.Length);
Delay(500);
}
}
2.一个字节自动触发接收
public void IO_EventHandler(object sender, SerialDataReceivedEventArgs e)
{
int count = 0;
Delay(100);
count = serPort.BytesToRead;
if (count < 6)
{
serPort.DiscardInBuffer();
}
else if (count > 6)
{
byte[] readBuffer = new byte[count];
try
{
serPort.Read(readBuffer, 0, count);//报错:由于IO线程退出或应用程序请求,已中止IO操作。
}
catch (Exception a)
{
MessageBox.Show(a.Message);
}