问题描述
说明: 尝试使用以下代码读取鼠标数据,但出现以下错误。如果有人遇到过同样的问题,请提供帮助。这样做的目的是我已经从作为HID设备连接的设备中读取了数据,所以在尝试使用鼠标的时候。
代码:
import usb.core
import usb.util
import sys
import usb.backend.libusb1
vendor_ID = 0x0461
Product_ID =0x4E22
dev=usb.core.find(idvendor=vendor_ID,idProduct=Product_ID)
if dev is None:
raise ValueError('device not found')
sys.exit(1)
else:
print("Device Found")
usb.util.claim_interface(dev,0)
dev=usb.core.find(idvendor=vendor_ID,idProduct=Product_ID)
try:
dev.set_configuration()
print ("Configuration set")
except:
print("configuration not set")
data =dev.read(0x81,4)
print(data)
usb.util.release_interface(dev,0)
输出:
Device Found
Configuration set
Traceback (most recent call last):
File "USB_Read.py",line 27,in <module>
data =dev.read(0x81,4)
File "C:\Python\lib\site-packages\usb\core.py",line 983,in read
ret = fn(
File "C:\Python\lib\site-packages\usb\backend\libusb1.py",line 846,in intr_read
return self.__read(self.lib.libusb_interrupt_transfer,File "C:\Python\lib\site-packages\usb\backend\libusb1.py",line 936,in __read
_check(retval)
File "C:\Python\lib\site-packages\usb\backend\libusb1.py",line 595,in _check
raise USBError(_strerror(ret),ret,_libusb_errno[ret])
usb.core.USBError: [Errno 5] Input/Output Error
解决方法
像这样设置 LIBUSB_DEBUG
:
sudo env LIBUSB_DEBUG=1 python USB_Read.py
您可以获得更多有助于解决问题的信息。
好吧,我修好了
usb.core.USBError: [Errno 5] Input/Output Error
像这样。
转到 /etc/udev/rules.d/
并创建文件 Primax.rules
具有以下内容:
SUBSYSTEM=="usb",ATTRS{idVendor}=="0461",MODE="0666"
SUBSYSTEM=="usb_device",MODE="0666"
请注意,您需要将 0461
(Primax 的 vendorID 是什么)更改为您使用的设备之一。
(...或者只是完全踢掉那个 ATTRS...,部分)
所以在它看起来像这样之前: (注意我的目标是总线 003 设备 022)
cd /dev/bus/usb/003
ls -l
crw-rw-r-- 1 root root 189,256 18. Mär 15:38 001
c--------- 1 root root 189,276 18. Mär 15:25 022
更改规则文件和(重新插入设备)后:
crw-rw-r-- 1 root root 189,256 18. Mär 15:38 001
crw-rw-rw- 1 root root 189,278 18. Mär 15:56 022