【发布时间】:2019-04-03 08:43:46
【问题描述】:
我正在尝试连接到 u-blox GPS 设备的驱动程序提供的虚拟 COM 端口。
设备正常显示在设备管理器的传感器选项卡下,我可以使用 C# 中的GeoCoordinateWatcher 类真正获取坐标数据。
但我想读取底层 NMEA 数据。
所以在这个过程中,我安装了 U-BLOX 提供的Virtual Com Port 驱动程序,它在设备管理器中生成了一个 u-blox virta com 端口。
使用Putty 连接到那个是可以的,我可以看到所有 NMEA 线路都被转储到那里。
但是当我尝试使用 C# 连接到同一个端口(@987654327@ 显然已关闭之后)时,我得到了标题中提到的异常
给定的端口名称不以 COM/com 开头或不解析为 一个有效的串口
我的代码相当简单(不是我第一次使用 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 端口号,这也没有帮助
【问题讨论】:
-
您是否尝试过重命名 COM 端口并使用新名称而不是旧名称。
-
是的。忘了提那个。从高级设置
-
我没有使用过 u-blox.. 但我希望下面的内容对你有用.. forum.u-blox.com/index.php/9380/… 。连接到串行端口似乎存在一些问题,因为它的行为与确切的串行端口不同。
-
@JSR 好吧,他们只是说它不起作用
-
我们使用称为 NetBurner 的以太网模块。他们有一个非常好的应用程序来设置真正的虚拟 COM 端口。也许试一试,我在连接到使用 C# 应用程序制作的 VCOM 时没有问题。 netburner.com/support/documents/sb70/deployment-tools-9/…
标签: c# serial-port argumentexception virtual-serial-port