C - 获取特定设备的 COM 端口号

标签 c windows port

有没有办法自动检测我的设备在 Windows 上连接到哪个 COM 端口?它是一个特定的设备,所以我知道它的名字或我需要的任何东西。

现在我有一个 C 程序,我必须在控制台中输入 COM 端口号,例如:

printf("COM port number?\n");
scanf("%d",&port_no); 
do_stuff_with_COM_port(port_no);

每次在 Windows 设备管理器中检查我的设备连接到哪个号码是很烦人的,我希望我的程序自动检测端口号。我怎样才能做到这一点?

谢谢。

最佳答案

您机器上的每个物理端口都有一个不变的数字。因此,如果您每次都将设备连接到同一个端口,则不需要此功能。

但如果您可能每次都更改端口,则可能有效的解决方案是:

  1. 尝试打开 COM 1

    • 如果出现错误,端口已被其他人打开,请转到第 3 步
    • 如果端口打开,继续执行第 2 步
  2. 尝试发送一条能被您的设备识别的消息

    • 如果您收到预期的答复,您就知道这是正确的端口。
    • 如果您没有收到任何东西(或一些无意义的东西),您就知道这不是正确的 COM 端口。
  3. 移动到下一个可用的 COM 端口并重复直到找到它,或者您枚举了所有 COM 端口

关于C - 获取特定设备的 COM 端口号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45321374/

相关文章:

c - 函数错误的隐式声明

C动态加载文件太短?

windows - 崩溃转储意味着在顺序指令之间更改了寄存器值

python - 如何从笔记本电脑托管服务器?

Ruby - 查看端口是否打开

linux - 如何循环直到 IP :port is not responding

c - 从c问题中的函数返回char指针

c - 词法分析器/分词器和字符集

windows - 如何使用 Powershell 搜索 Windows 搜索索引文件

windows - GitBash 创建的目录没有出现在 Windows 资源管理器中