【发布时间】:2015-06-08 08:04:53
【问题描述】:
我有很多与 STM32 VCP 相同的设备。 Windows 8.1 为设备创建串行 COM 端口。如果我将一个设备连接到任何 PC USB 端口,Windows 将绑定到它的同一个 COM 端口。将第二个设备连接到其他 USB 端口后,它将创建下一个具有不同串行 COM 号的 COM 端口。如果我拔下这些设备并以不同的顺序连接,COM 端口将在设备之间切换。这是一个问题,因为我每次都需要相同的 COM 端口顺序(物理上)。 使用 USBlyzer 软件,我可以看到每个物理 USB 端口的某种 USB 端口号是不同的:
所以我想通过这些设备通过端口号访问(获取当前设备)。还是列出所有设备并从设备对象中获取此端口号?
在 libusb 文档中发现它有这样一个方法:
uint8_t libusb_get_port_number (libusb_device *dev)
获取设备连接的端口号。
链接:http://libusb.sourceforge.net/api-1.0/group__dev.html
也许 PyUSB 也有...
【问题讨论】:
-
我从未见过 Windows 有这种行为。如果设备相同(并且没有 USB 序列号),那么分配给它们的 COM 端口号应该只取决于它们插入的端口,而不是它们插入的顺序。但我承认我没有不要经常测试没有序列号的 USB 设备,并且可能发生了一些变化。这是什么版本的 Windows?