2011-06-07 122 views
0

我正在编写从COM端口读取的代码。我希望它从两个端口读取,而不必关闭第一个端口并打开第二个端口。我会如何去做这件事?如何从两个COM端口读取?

+2

你试过**什么**吗? – Snowbear 2011-06-07 19:07:16

+0

什么平台,什么框架,你试过什么? – 2011-06-07 19:10:44

回答

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

您可以创建两个CommPort对象并将它们都打开。只是'新'他们都起来,设置每个通信端口的参数,并在它。

+0

我不确定,那是我想知道的。 – lk5163 2011-06-07 19:06:31

+2

以这种方式表达它不仅仅是一个回答而是一个评论。 – Snowbear 2011-06-07 19:08:28

+0

这**是一个答案,但鉴于OP的困难,一个好的答案需要将所有东西拼出来。 – 2011-06-07 19:44:56