我试图打开 COM1,但每次调用 SerialPort.Open()
时都会出现奇怪的错误。
错误是:
The given port name does not start with COM/com or does not resolve to a valid serial port. Parameter name: portName
代码很简单:
SerialPort port = new SerialPort("COM1", 19200, Parity.None, 8, StopBits.One);
port.Handshake = Handshake.RequestToSend;
port.Open();
如果我调用 SerialPort.GetPortNames()
,它会返回一个名为“COM1”的端口。
我已经确认我的计算机上有一个“COM1”,并且我没有在任何其他应用程序中使用它。当我在另一台计算机上运行代码时,它可以工作。我的系统运行的是 Windows Vista。 .NET版本为2.0。
我必须在某处更改安全设置吗?我以管理员身份登录,并关闭了 UAC。
更多信息
我使用了 Process Explorer 并确认没有任何东西正在使用\Device\Serial0。
解决方法
我安装了一个 USB 串口适配器 (COM3),它工作正常。去搞清楚。 COM1 一定有问题。
最佳答案
我也遇到过这个问题。事实证明,我有一台打印机设置为使用我试图打开的 COM 端口。一旦我将打印机更改为使用另一个端口,该端口就可以正常打开。
关于c# - 无法在 .NET 中打开串口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1759281/