【问题标题】:SerialPort (.net) - not ports foundSerialPort (.net) - 未找到端口
【发布时间】:2018-02-10 05:53:59
【问题描述】:
using System;
using System.IO.Ports;

public static void getPorts()
{
    string[] ports = SerialPort.GetPortNames();

    Console.WriteLine("The following serial ports were found:");

    foreach (string port in ports)
    {
        Console.WriteLine(port);
    }
    Console.ReadLine();
}

我对这个简单的代码有疑问。我需要写出我的端口,因为我稍后会使用它们(我在我更大的应用程序中使用这个简单的功能)。在我升级 Windows 之前,一切正常。你知道可能是什么问题吗?我还安装了所有驱动程序。

【问题讨论】:

  • 具体的问题是什么?你有任何错误吗?请在代码中添加try-catch 块。
  • 当我假设你的端口已经消失时我是对的吗?
  • 你能在设备管理器中看到端口吗
  • 我没有收到任何错误,但也没有收到任何端口名称。通常输出是 COM3、COM4 等。代码运行但 SerialPort.GetPortNames();找不到任何端口,所以它不会写出任何端口。输出只是“找到以下串行端口:”来自 WriteLine()
  • 我什至没有像以前那样的端口选项(比如i.stack.imgur.com/Cv1pw.png),我在那里列出了它们,但没有使用 COM 名称 imgur.com/a/t405K

标签: c# .net serial-port


【解决方案1】:

SerialPort.GetPortNames 方法不会列出某些虚拟串行端口(如某些 USB-to-RS232 适配器等提供的那些),因为它依赖于 documentation 中指定的 HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\SERIALCOMM 注册表项。 您可以通过 WMI 查询列出所有串行端口,详细信息 here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-09
    相关资源
    最近更新 更多