0

我有一个应用程序,我通过 USB 到 RS422 转换器将数据写入串行端口。此转换器电缆通过 USB 集线器连接到我的 PC。我面临的问题是,每次更改运行应用程序的 PC 时,COM 端口的名称都会更改。所以我将不得不在我的代码中更改它并重新编译代码以运行应用程序。目前以下是我用来初始化串口的代码:

if ((comport = CreateFile("\\\\.\\COM7", GENERIC_WRITE, 0, 
        NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL)) == INVALID_HANDLE_VALUE)
    {
        return false;
    }

这里我只提到 COM 端口的名称。我想知道是否有一个 API 可以知道 COM 端口的状态并即时识别我的转换器所连接的 COM 端口?

4

2 回答 2

1

在 Windows 上检测所有可用串行端口的正确方法是什么? 这个问题至少可以帮到你一点。因此,正如第二个答案所暗示的那样,使用 API 可能是不可能的。串行端口不是即插即用的。

因此可以列出所有端口。我想到的唯一可能的方法是轮询列表中的每个设备。等到你得到你所期待的回应。这不是很好。

编辑:如果这是你想要的,也许可以获得友好的名称。 如何在 Windows 中获取 COM 端口的友好名称?

于 2013-04-09T07:27:11.143 回答
0

而是更改应用程序中的 COM 端口,您可以从以下位置设置电缆的 COM 端口

设备管理器 -> 端口 -> 右键单击​​您的电缆名称 -> 属性 -> 端口设置 -> 高级 -> Com 端口号(您可以根据应用选择端口号)

无需更改应用程序中的任何内容。

于 2013-04-09T12:45:40.800 回答