.net IO.Ports.SerialPort连接失败

.net IO.Ports.SerialPort连接失败,.net,serial-port,communication,.net,Serial Port,Communication,我使用.NETFramework(2.0)开发了一个软件。我使用串行端口与多个设备通信,没有任何问题 然而,我尝试与一个新的通信,但无法编写或读取任何命令 在尝试使用我的软件进行任何通信之前,我使用Hilgraeve的超级终端进行了测试。那么,如果我发送*IDN,用这个软件?将串行端口、设备切换到远程模式,然后回答ANRITSU、MS9710A、V1.20383之类的问题。所以使用的参数看起来不错 但是,当我尝试从.net framework使用IO.Ports.SerialPort时,无法进行

我使用.NETFramework(2.0)开发了一个软件。我使用串行端口与多个设备通信,没有任何问题

然而,我尝试与一个新的通信,但无法编写或读取任何命令

在尝试使用我的软件进行任何通信之前,我使用Hilgraeve的超级终端进行了测试。那么,如果我发送*IDN,用这个软件?将串行端口、设备切换到远程模式,然后回答ANRITSU、MS9710A、V1.20383之类的问题。所以使用的参数看起来不错

但是,当我尝试从.net framework使用IO.Ports.SerialPort时,无法进行通信。经过多次测试,我可以说:

  • 问题似乎来自Write函数,因为当我使用MyPort.Write(“*IDN?”)时,缓冲区中似乎没有写入任何内容。我这么说是因为设备没有切换到远程模式

  • 超级终端和我的IO.Ports.SerialPort之间的所有(可见)参数都相同:9600 bps,8-N-1,无握手。IO.Ports.SerialPort的缓冲区大小具有默认值

  • 我已经用google测试了其他几个.net应用程序find,但没有人能够与该设备通信,在MS将IO.Ports.SerialPort添加到框架之前,我还使用framework 1.1测试了软件

所以我的结论是问题来自IO.Ports.SerialPort,但我不知道问题出在哪里。我有一些线索:

  • IO.Ports.SerialPort在速度低于19200bps(我的情况下最大值为9600)时无法通信。我想,因为我与之通信没有任何问题的所有其他设备的最低速度为19200bps(编辑:我发现另一台设备的工作速度为9600bps,我使用我的软件与之通信,问题来自另一点)

  • 有一个参数我还没有看到,它可以解决这个问题

  • 该框架的下一个版本(3.0、3.5或4.0)是否有帮助?我没有找到任何关于IO.Ports.SerialPort类更新为最新版本的文档

你知道这个问题吗?以前有人遇到过这种问题吗

更多信息:该软件是使用vb.net和Win7上的VS2010开发的。我也在有问题的设备上测试了GPIB通信,没有问题,但如果可能的话,我不喜欢使用GPIB协议


谢谢您的帮助。

是否有异常被抛出?没有,没有异常。在我调用Write之后,程序继续运行,然后当我读取缓冲区时,它返回空字符串(因为我认为没有向设备发送任何内容)。