SerialPort 在设备管理器中可见,但 SerialPort.Open() 报告找不到它
SerialPort visible in device manager but SerialPort.Open() reports that it cannot be found
我有一个侦听 COM 端口的 .NET 应用程序。连接的另一端是UDOO板运行 lubuntu.
udoo板重启后,COM端口暂时消失,然后重新出现在设备管理器中。但是,当我调用 SerialPort 对象的 "Open" 函数时,我得到一个异常 "The port COM4 does not exist"。完整的异常堆栈跟踪如下。
at System.IO.Ports.InternalResources.WinIOError(Int32 errorCode, String str)
at System.IO.Ports.SerialStream..ctor(String portName, Int32 baudRate, Parity parity, Int32 dataBits, StopBits stopBits, Int32 readTimeout, Int32 writeTimeout, Handshake handshake, Boolean dtrEnable, Boolean rtsEnable, Boolean discardNull, Byte parityReplace)
at System.IO.Ports.SerialPort.Open()
即使抛出此异常,设备管理器也会显示与以下屏幕截图中可见的完全相同的 COM 端口。
是的,我确实刷新了设备列表。将数据线拔出再插回电脑可以解决这个问题,但是,它并不优雅。
有没有关于如何解决这个问题的想法?
尝试禁用串行端口,然后重新启用。
还要检查硬件是否有问题。你可以通过在串口插入usb设备来检查它。如果工作正常。使用调试器检查代码。
一旦您的应用程序检测到缺少 COM 端口,您应该关闭 () 连接到它。当它在系统中再次可用时,您将不会再打开它。
我在使用 ELMO 驱动程序时遇到了类似的问题。我们在 USB 连接串行 (COM) 和 HID 上使用了 2 个逻辑管道。 COM 在一个进程中打开,HID 在第二个进程中打开。
在硬件重置和 USB 重新初始化后,COM 和 HID 端口重新列在设备管理器中,但我们无法再打开它。通常只有 PC 重置有帮助。我们花了一些时间试图找出问题所在,我们发现当 USB 不再可用时,HID 进程没有关闭连接。
引入这个简单的修复后,一切都开始正常工作。
我有一个侦听 COM 端口的 .NET 应用程序。连接的另一端是UDOO板运行 lubuntu.
udoo板重启后,COM端口暂时消失,然后重新出现在设备管理器中。但是,当我调用 SerialPort 对象的 "Open" 函数时,我得到一个异常 "The port COM4 does not exist"。完整的异常堆栈跟踪如下。
at System.IO.Ports.InternalResources.WinIOError(Int32 errorCode, String str)
at System.IO.Ports.SerialStream..ctor(String portName, Int32 baudRate, Parity parity, Int32 dataBits, StopBits stopBits, Int32 readTimeout, Int32 writeTimeout, Handshake handshake, Boolean dtrEnable, Boolean rtsEnable, Boolean discardNull, Byte parityReplace)
at System.IO.Ports.SerialPort.Open()
即使抛出此异常,设备管理器也会显示与以下屏幕截图中可见的完全相同的 COM 端口。
是的,我确实刷新了设备列表。将数据线拔出再插回电脑可以解决这个问题,但是,它并不优雅。
有没有关于如何解决这个问题的想法?
尝试禁用串行端口,然后重新启用。 还要检查硬件是否有问题。你可以通过在串口插入usb设备来检查它。如果工作正常。使用调试器检查代码。
一旦您的应用程序检测到缺少 COM 端口,您应该关闭 () 连接到它。当它在系统中再次可用时,您将不会再打开它。
我在使用 ELMO 驱动程序时遇到了类似的问题。我们在 USB 连接串行 (COM) 和 HID 上使用了 2 个逻辑管道。 COM 在一个进程中打开,HID 在第二个进程中打开。 在硬件重置和 USB 重新初始化后,COM 和 HID 端口重新列在设备管理器中,但我们无法再打开它。通常只有 PC 重置有帮助。我们花了一些时间试图找出问题所在,我们发现当 USB 不再可用时,HID 进程没有关闭连接。 引入这个简单的修复后,一切都开始正常工作。