gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 18:37:52 30 4
gpt4 key购买 nike

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

enter image description here

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

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

uint8_t libusb_get_port_number (libusb_device *dev)
获取设备连接的端口号。

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

也许 PyUSB 也有...

最佳答案

找到了解决我问题的其他方法。使用 Windows DeviceManager 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

关于python - 是否可以使用 PyUSB 通过 USB 端口获取 USB 设备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30703988/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com