windodws pyusb hub端口对应连接的usb设备

源码

#!/usr/bin/python
import sys
import usb.core
# find USB devices
dev = usb.core.find(find_all=True)
# loop through devices, printing vendor and product ids in decimal and hex
for cfg in dev:
    if cfg.idVendor == 0x2207:
        print(str(cfg.serial_number))        # 之前就是这里报错
         print(str(cfg.port_number))
         sys.stdout.write('Decimal VendorID=' + str(cfg.idVendor) + '& ProductID=' + str(cfg.idProduct) + '\n')
         sys.stdout.write('Hexadecimal VendorID=' + hex(cfg.idVendor) + '& ProductID=' + hex(cfg.idProduct) + '\n\n')

问题

通过pyusb打印出usb设备的所有属性,发现关于serial_number的属性发生了异常,异常如下

'Traceback (most recent call last):
File "D:\\Program Files\\JetBrains\\PyCharm 2019.3.1\\plugins\\python\\helpers\\pydev\\_pydevd_bundle\\pydevd_resolver.py", line 178, in _getPyDictionary
attr = getattr(var, n)
File "D:\\Program Files\\Python37\\lib\\site-packages\\usb\\core.py", line 830, in serial_number
self._serial_number = util.get_string(self, self.iSerialNumber)
File "D:\\Program Files\\Python37\\lib\\site-packages\\usb\\util.py", line 314, in get_string
raise ValueError("The device has no langid")
ValueError: The device has no langid

解决办法

通过zadig软件安装libusb-win32,libusbk

问题分析

https://stackoverflow.com/questions/58131082/simple-communication-usb-with-python-pyusb-on-windows-10
https://sourceforge.net/p/pyusb/mailman/pyusb-users/?viewmonth=201608

posted @ 2020-01-02 18:05  空水  阅读(1362)  评论(0)    收藏  举报