gpt4 book ai didi

c# - ArgumentException: 给定的端口名称不以 COM/com 开头或未解析为有效的串行端口

转载 作者:行者123 更新时间:2023-12-04 02:56:08 33 4
gpt4 key购买 nike

我正在尝试连接到 u-blox GPS 设备驱动程序提供的虚拟 com 端口。

该设备通常出现在设备管理器的传感器选项卡下,我真的可以使用 GeoCoordinateWatcher 获取坐标数据。来自 C# 的类。

但我想阅读底层的 NMEA 数据。
所以在这样做的过程中我安装了 Virtual Com Port U-BLOX 提供的驱动程序,它在设备管理器中生成了一个 u-blox virta com 端口。

使用 Putty 连接到那个没问题,我可以看到所有的 NMEA 线路都在那里转储。

但是当我尝试使用 C# 连接到同一个端口(在 Putty 明显关闭之后)时,我得到了标题中提到的异常

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



我的代码相当简单(不是我第一次使用 com 端口)并且所有内容都正确定义(端口名称、停止位、奇偶校验、波特率等)。我什至尝试更改为“错误”的 com 端口名称以查看我将得到的异常,它完全不同(Com 端口不是退出异常)。

那么此时 C# 发生了什么?难道我做错了什么?这是 SerialPort 类中的错误吗? Putty 似乎在连接和流式传输数据方面工作得很好。
我的代码很简单,如下
m_port = new SerialPort
{
PortName = m_portName,
BaudRate = m_baudRate,
Parity = m_parityBit,
DataBits = m_dataBits,
StopBits = m_stopBit
};

m_port.Open();

我什至尝试对值进行硬编码,但仍然遇到相同的异常。
我尝试了许多建议的解决方案 here ,他们都没有帮助。
我还尝试从设备管理器高级设置更改 COM 端口号,这也没有帮助

最佳答案

事实证明,U-BLOX 虚拟 COM 端口驱动程序没有完全模拟 COM 端口,这会导致 .Net 出现问题。 .不管是不是C#C++或在 .Net 上运行的任何其他语言
唯一的解决方案是要么不使用此设备,要么使用中间软件。

关于c# - ArgumentException: 给定的端口名称不以 COM/com 开头或未解析为有效的串行端口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53062082/

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