• 软件安装

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

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐