Я пытаюсь установить связь между моим ПК и 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, которые являются бэкэндами для связи с USB-устройствами, которые нам необходимо включить в переменную среды PATH.
Вы могли бы исправить свой отступ? это должно помочь нам найти проблему – maazza
нет ее проблемы с отступом. если это так, он должен показывать ошибку отступа. – dinece
Нет, я имею в виду, что ваш код имеет проблемы с форматированием, например, «yield d'» недействителен python – maazza