3

我正在用 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。我似乎找不到找不到我的设备的原因,尽管我可能遗漏了一些非常基本的东西。

4

2 回答 2

3

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

于 2015-10-27T18:42:35.923 回答
1

您的在线代码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)
于 2015-10-25T20:34:19.927 回答