有没有办法自动检测我的设备在 Windows 上连接到哪个 COM 端口?它是一个特定的设备,所以我知道它的名字或我需要的任何东西。
现在我有一个 C 程序,我必须在控制台中输入 COM 端口号,例如:
printf("COM port number?\n");
scanf("%d",&port_no);
do_stuff_with_COM_port(port_no);
每次在 Windows 设备管理器中检查我的设备连接到哪个号码是很烦人的,我希望我的程序自动检测端口号。我怎样才能做到这一点?
谢谢。
最佳答案
您机器上的每个物理端口都有一个不变的数字。因此,如果您每次都将设备连接到同一个端口,则不需要此功能。
但如果您可能每次都更改端口,则可能有效的解决方案是:
尝试打开 COM 1
- 如果出现错误,端口已被其他人打开,请转到第 3 步
- 如果端口打开,继续执行第 2 步
尝试发送一条能被您的设备识别的消息
- 如果您收到预期的答复,您就知道这是正确的端口。
- 如果您没有收到任何东西(或一些无意义的东西),您就知道这不是正确的 COM 端口。
- 移动到下一个可用的 COM 端口并重复直到找到它,或者您枚举了所有 COM 端口
关于C - 获取特定设备的 COM 端口号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45321374/