我正在嘗試在我的電腦和PIC18F4550之間進行通信,但程序未檢測到它,而計算機卻在Device Manager中顯示。PyUsb在我的電腦不能識別我的USB設備時
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設備進行通信的。
你能解決你的縮進問題嗎?這應該幫助我們找到問題 – maazza
不是它的縮進問題。如果是這樣它應該顯示縮進錯誤。 – dinece
沒有我的意思是你的代碼格式化問題,例如「yield d'」是無效的python – maazza