【发布时间】:2016-06-29 04:20:36
【问题描述】:
我正在尝试在我的 PC 和 PIC18F4550 之间进行通信,但程序没有检测到它,而计算机在 Device Manager 中显示它。
import usb.core
dev = usb.core.find(idVendor = 0x04D8, idProduct = 0xFEAA)
检查USB设备的功能:
def find(find_all = False, backend = None, custom_match = None, **args):
def device_iter(k, v):
for dev in backend.enumerate_devices():
d = Device(dev, backend)
if _interop._reduce(lambda a, b: a and b,map(operator.eq,v,map(lambda i:getattr(d,i),k)),True)and (custom_match is None or custom_match(d)):
yield d
if backend is None:
import usb.backend.libusb1 as libusb1
import usb.backend.libusb0 as libusb0
import usb.backend.openusb as openusb
for m in (libusb1, openusb, libusb0):
backend = m.get_backend()
if backend is not None:
_logger.info('find(): using backend "%s"', m.__name__)
break
else:
raise ValueError('No backend available')
k, v = args.keys(), args.values()
if find_all:
return device_iter(k, v)
else:
try:
return _interop._next(device_iter(k, v))
except StopIteration:
return None
我在运行代码时遇到的错误。
Traceback (most recent call last):
File "C:\modules\motor.py", line 29, in <module>
dev = usb.core.find(idVendor=0x04D8,idProduct=0xFEAA)
File "C:\Python27\lib\site-packages\usb\core.py", line 1199, in find
raise ValueError('No backend available')
ValueError: No backend available
之前它可以正常执行,但在过去的几天里它显示了这个错误。我不明白突然发生了什么。使用 PyUSB 模块有什么问题吗?
我看到他们中的一些人在使用 USB 通信时遇到了同样的问题。
我已经解决了这个问题。解决方案是 PyUSB 模块将搜索 libusb0.dll 和 libusb-1.0.dll 文件,它们是与我们需要包含在 PATH 环境变量中的 USB 设备通信的后端。
【问题讨论】:
-
你能修复你的缩进吗?这应该可以帮助我们找到问题
-
不,这不是缩进问题。如果是这样,它应该显示缩进错误。
-
不,我的意思是你的代码有格式问题,例如“yield d`”是无效的python
-
这不是我的代码的一部分。我用它来构建stackoverflow中的代码
-
是的,但是任何想帮助您的人都会尝试复制您的代码,如果您的示例在这里排版正确,这会更容易
标签: python python-2.7 python-module libusb pyusb