是否可以使用PyUSB通过USB端口获取USB设备

2024-09-24 06:27:05 发布

您现在位置:Python中文网/ 问答频道 /正文

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

enter image description here

所以我想通过这些设备通过端口号访问(获取当前设备)。或者列出所有设备并从设备对象中获取此端口号?在

在libusb文档中发现它有这样一个方法:

uint8\u t libusb_get_端口号(libusb_device*dev)
获取设备连接到的端口号。在

链接:http://libusb.sourceforge.net/api-1.0/group__dev.html

也许Pyubs也有。。。在


Tags: 端口devcom软件顺序windows物理usb
1条回答
网友
1楼 · 发布于 2024-09-24 06:27:05

找到了解决我问题的其他方法。使用windows设备管理器API从位置信息和包含COM端口号的设备的友好名称中获取端口号和集线器号(USB物理标识)。解析这些信息并有串行通信的信息。在

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:
        pass

相关问题 更多 >