c# - 无法在 .NET 中打开串口

标签 c# .net serial-port

我试图打开 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/

相关文章:

c# - 将 PropertyInfo 转换为 Func<> 委托(delegate)

c# - 分析路由时动态添加Asp .NET Core Controller

c# - 如何用不同大小的四边形填充程序生成的网格?

windows - 如何强行释放被其他应用程序占用或挂起的COM端口

linux - 如何在内核模式(Linux)下从串口读取数据(字符)?

c# - 如何使用 selenium webdriver 将鼠标悬停在不执行任何鼠标单击的情况下查看隐藏菜单?

c# - 如何通过一次调用 Azure key 保管库获取所有 secret

.net - 迁移到 Visual Studio 2019 导致 WPF 应用程序崩溃

.net - XML 序列化丢失命名空间

java - 如何在Java中设置从串行端口读取时的超时?