无法在.NET中打开串行端口

Jon*_*n B 8 .net c# serial-port

我试图打开COM1,但每次打电话都会收到一个奇怪的错误SerialPort.Open().

错误是:

给定的端口名称不以COM/com开头,也不会解析为有效的串行端口.参数名称:portName

代码很简单:

SerialPort port = new SerialPort("COM1", 19200, Parity.None, 8, StopBits.One);
port.Handshake = Handshake.RequestToSend;
port.Open();
Run Code Online (Sandbox Code Playgroud)

如果我调用SerialPort.GetPortNames()它,它将返回一个名为"COM1"的端口.

我已经验证我的计算机上有一个"COM1",我没有在任何其他应用程序中使用它.当我在另一台计算机上运行代码时,它可以工作.我的系统正在运行Windows Vista..NET的版本是2.0.

是否有安全设置我必须在某处更改?我以管理员身份登录,并关闭了UAC.


更多信息

我使用了Process Explorer并确认没有使用\ Device\Serial0.


解决方法

我安装了一个USB串口适配器(COM3),它工作正常.去搞清楚.COM1一定有问题.

小智 5

我也有这个问题.事实证明我有一台打印机设置使用我试图打开的COM端口.一旦我改变打印机使用另一个端口,端口打开就好了.


Raú*_*ràs 1

尝试使用符号 \.\COMX 而不仅仅是 COMX。确保转义字符:“\\.\COM1”

编辑:Wops,SO转义我的 \ 所以它应该是这样的(省略空格):“\ \ \ \ . \ \ COM1”

  • 如果我这样做,我会收到一个异常,指出 COM 端口无法以 \ 开头 (2认同)