我有许多与STM32 VCP相同的设备。Windows 8.1为设备创建串行COM端口。如果我连接一个设备到任何PC USB端口,windows将绑定到它相同的COM端口。将第二个设备连接到其他USB端口后,将创建具有不同序列号的下一个COM端口。如果我拔掉这些设备并以不同的顺序连接,COM端口将在设备之间切换。这是一个问题,因为每次我都需要相同的命令COM端口命令(物理)。使用USBlyzer软件,我可以看到不同物理USB端口的某种USB端口号有什么不同:

因此,我想通过这些设备访问(获取当前设备)的端口号。还是列出所有设备并从设备对象获取这个端口号?
在libusb文档中,发现它有这样一个方法:
uint8_t libusb_get_port_number (libusb_device *dev)
获取设备连接到的端口号。
链接:dev.html
也许PyUSB也有..。
发布于 2015-06-08 14:27:18
找到了解决我问题的其他方法。使用windows从DeviceManager的位置信息和友好的设备名称中获取端口和集线器号(USB物理标识),其中包含COM端口号。解析此信息并具有用于串行通信的信息。
from infi.devicemanager import DeviceManager
dm = DeviceManager()
dm.root.rescan()
devices = dm.all_devices
for i in devices:
try:
print '{} : address: {}, bus: {}, location: {}'.format(i.friendly_name, i.address, i.bus_number, i.location)
except Exception:
passhttps://stackoverflow.com/questions/30703988
复制相似问题