我正在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。我似乎找不到找不到我的设备的原因,尽管我可能遗漏了一些非常基本的东西。
答案 0 :(得分:2)
我没有意识到PyUSB需要一个驱动程序(.inf文件)来为你想与python交互的每个设备;我认为Windows上的自动驱动程序安装就足够了。用于libusb的Windows Installer附带了一个非常方便的INF创建者和安装程序,在我应用该工具后问题得以解决。
答案 1 :(得分:0)
您在第dev usb.core.find("idVendor="0x0403", idProduct="0x6001")
行的代码有以下错误:
=
。将其更改为dev = usb.core.find....
"
find("idVendor
dev = usb.core.find(idVendor=0x0403, idProduct=0x6001)