如何从两个COM端口读取?

时间:2011-06-07 19:04:28

标签: c# serial-port

我正在编写从COM端口读取的代码。我希望它从两个端口读取而不必关闭第一个端口并打开第二个端口。我该怎么做呢?

2 个答案:

答案 0 :(得分:4)

using System.IO.Ports;

...

SerialPort port1 = new SerialPort("COM1", 9600, Parity.None, 8, StopBits.One);
SerialPort port2 = new SerialPort("COM2", 9600, Parity.None, 8, StopBits.One);

port1.DataReceived += new SerialDataReceivedEventHandler(port1_DataReceived);
port2.DataReceived += new SerialDataReceivedEventHandler(port2_DataReceived);
port1.Open();
port2.Open();

...

private void port1_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
    // Show all the incoming data in the port's buffer
    Console.WriteLine(port1.ReadExisting());
}
private void port2_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
    // Show all the incoming data in the port's buffer
    Console.WriteLine(port2.ReadExisting());
}

答案 1 :(得分:1)

您可以创建两个CommPort对象并将它们打开。只需'新'它们两个,设置每个通信端口的参数并使用它。