- 软件安装
windows需要安装python环境,使用usb需要安装pyusb模块,pip install pyusb或者python -m pip install pyusb。
- 代码测试
#!/usr/bin/python
# -*- coding:utf-8 -*-
import usb.util
import sys
#USB\VID_1C4F&PID_0051
dev = usb.core.find(idVendor= 0x1C4F, idProduct= 0x0051)
if dev is None:
raise ValueError('Device not found')
print(dev)
# set the active configuration. With no arguments, the first
# configuration will be the active one
cfg = dev.get_active_configuration()
idVendor和idProduct是你的usb设备的VID和PID通过设备管理器可查到
运行后,可能发现报错,或者什么也没有。还需要安装windows的libusb的dll库,可参考:https://stackoverflow.com/questions/33972145/pyusb-on-windows-8-1-no-backend-available-how-to-install-libusb
原文有这么一段描述
I downloaded latest libusb windows binaries from here: http://sourceforge.net/projects/libusb/files/libusb-1.0/libusb-1.0.20/libusb-1.0.20.7z/download then I copied libusb1.dll according to this: when you are on 64-bit Windows, MS64\dll\libusb-1.0.dll must be copied into C:\Windows\System32 and (for running 32-bit applications that use libusb) MS32\dll\libusb-1.0.dll must be copied into C:\Windows\SysWOW64. and then I copied libusb1.lib from binaries to lib dir in python directory and now pyusb works for me. hope it helps.
根据描述执行相应的操作后,在执行上述代码之后就可以看到usb的相关描述信息了。
附usb读取操作
#!/usr/bin/python
# -*- coding:utf-8 -*-
import usb.core
import usb.util
import array
dev = usb.core.find(idVendor=0x0416, idProduct=0x5020)
if dev is None:
raise ValueError('Device not found')
while True:
try:
data = dev.read(0x85, 64)
print(data)
except usb.core.USBError as e:
if e.args == ('Operation timed out',):
continue
dev.read(0x85, 64) 0x85是usb的端点号,根据要求填写即可
另附python获取usb设备的代码,需安装python -m pip install pypiwin32
import win32com.client
wmi = win32com.client.GetObject ("winmgmts:")
for usb in wmi.InstancesOf ("win32_usbcontrollerdevice"):
print(usb.Dependent)
可打印出usb设备,查找到对应的vid和pid