gpt4 book ai didi

C# 打开虚拟串口抛出 ArgumentException

转载 作者:可可西里 更新时间:2023-11-01 14:14:53 29 4
gpt4 key购买 nike

我有一个通过串行端口连接到设备的实用程序。为了测试这个应用程序,我正在为该设备编写一个模拟器。

这两个应用程序旨在在同一台 Windows 7 机器上运行。

我正在用 C# 编写模拟器。我使用 com0com 创建了一对虚拟端口(在本例中为 CNCA8 和 CNCB8,因为我已经有几个现有的端口对)。

我试图在模拟器中打开 CNCB8(应用程序尚未运行),但出现异常:

An unhandled exception of type 'System.ArgumentException' occurred in System.dll

Additional information: The given port name does not start with COM/com or does not resolve to a valid serial port.

示例代码:

        SerialPort port = new SerialPort("CNCB8", 9600, Parity.None, 8, StopBits.One);
port.Handshake = Handshake.None;
port.Open();

这个问题不相关,因为它是一个未使用的虚拟端口(如果重要,IsOpen 返回 false): C# SerialPort#Open() method throws ArgumentException because of port name?

编辑: 我还确保端口名称出现在 SerialPort.GetPortNames() 中,并且它出现在 WIndows 的设备管理器中的“com0com 串行端口仿真器”下。我还尝试使用 CNCA 而不是 B(具有几个不同的现有虚拟端口),尝试删除“HandShake”行并尝试将波特率更改为 115200,以防万一(尽管最终我在那里需要 9600)。

最佳答案

Com0com 允许您编辑端口名称。如果您将配对重命名为 COM10 和 COM11,这种情况还会发生吗?

此外,端口是否真的存在?在 Windows Server 2008 R2 上,我们不得不发出 Com0com 自述文件中提到的 bcdedit 命令,因为操作系统不信任设备驱动程序。

关于C# 打开虚拟串口抛出 ArgumentException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18230826/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com