PyUSB无法识别特定的USB设备

时间:2015-10-25 01:43:33

标签: python python-2.7 libusb pyusb

我正在python中编写软件,使用USB连接的辐射探测器探测宇宙μ子。

我正在尝试使用PyUSB模块与设备进行交互,但PyUSB并没有特别找到我的辐射探测器。设备本身有一个串口,但我使用的是FTDI USB /串口适配器,我已经与公司和控制面板交叉检查了适配器的VID / PID。

以下代码会产生<generator object device-iter at 0x02AADA80>。这是我的PC上的四个USB设备之一(鼠标,键盘,WiFi适配器和辐射探测器)。

import usb
import usb.core
import usb.util

dev = usb.core.find(find_all=True)
if dev is None:
    raise ValueError("device not found")
else:
    print(dev)

我用来定位设备的PyUSB教程的代码也失败了:

import usb
import usb.core
import usb.util

dev  usb.core.find("idVendor="0x0403", idProduct="0x6001") # VID/PID verified by company
if dev is None:
    raise ValueError("device not found")
else:
    print(dev)

我在Windows 7上运行Python 2.7.1,我有最新版本的PyUSB和libusb。我似乎找不到找不到我的设备的原因,尽管我可能遗漏了一些非常基本的东西。

2 个答案:

答案 0 :(得分:2)

我没有意识到PyUSB需要一个驱动程序(.inf文件)来为你想与python交互的每个设备;我认为Windows上的自动驱动程序安装就足够了。用于libusb的Windows Installer附带了一个非常方便的INF创建者和安装程序,在我应用该工具后问题得以解决。

答案 1 :(得分:0)

您在第dev usb.core.find("idVendor="0x0403", idProduct="0x6001")行的代码有以下错误:

  1. 缺少=。将其更改为dev = usb.core.find....
  2. "
  3. 的额外find("idVendor
  4. 根据PyUSB doc,您可能想尝试dev = usb.core.find(idVendor=0x0403, idProduct=0x6001)