-1

我有两个科胜讯传真调制解调器和一个带有两个 serialPort 对象的 C# 应用程序,用于侦听两个通信端口上的传入数据。

这是我初始化每个调制解调器的方法:

m_SerialPort = new SerialPort("COM3", 2400);
m_SerialPort.DataReceived += new SerialDataReceivedEventHandler(this.ReceiveChars);

try
{
    m_SerialPort.Open();
    m_SerialPort.DiscardInBuffer();
    m_SerialPort.DiscardOutBuffer();    
}
catch (Exception e)
{
    // die gracefully
}
finally
{
    m_SerialPort.DtrEnable = true;
}

第二个调制解调器被初始化为不同的 SerialPort 对象,但使用“COM4”。

我第一个初始化的任何 COM 端口都可以接收数据,但第二个 COM 端口将不会接收数据。

这是我的初始化、C# 的 SerialPort 类或 Windows XP 拒绝让两个调制解调器同时运行的问题吗?

欢迎任何意见或建议。

更新

您是否在“设备管理器”下检查了两个端口都已配置、启用和工作?

是的,它们都有单独的端口。

您是否尝试过类似 Hyperterm 的方法来尝试将数据发送到端口?

尝试在单独的超级终端中打开两个通讯端口,但未能打开第二个通讯端口。

4

4 回答 4

1

看起来问题只是两个科胜讯调制解调器不能同时在同一台 PC 上运行。我从另一个供应商那里安装了另一个调制解调器,并且我能够打开两个 com 端口。

于 2009-01-29T19:13:20.503 回答
1

提示:使用此工具测试您的应用程序,它会创建虚拟 com 端口。
http://sourceforge.net/projects/com0com/

于 2009-01-29T19:32:14.723 回答
1

您是否在“设备管理器”下检查了两个端口都已配置、启用和工作?

您是否尝试过类似 SysInternals PortMon 来监控端口?

您是否尝试过类似 Hyperterm 的方法来尝试将数据发送到端口?

于 2009-01-29T02:02:04.303 回答
0

我猜想(我还能做什么?)您在 ReceiveChars 方法中做了一些顽皮的事情(也许您正在更新 GUI,而不使用 Invoke),并且这会阻止 ReceiveChars 方法被调用再次。

于 2009-01-29T03:43:00.950 回答