PyUSB 无法识别特定的 USB 设备

PyUSB not recognizing particular USB device

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

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

以下代码产生 <generator object device-iter at 0x02AADA80>。这是我电脑上的四个 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)

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

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

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

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