描述:试图用下面的代码读取鼠标数据,但出现下面给出的错误。如果有人遇到同样的问题,请帮忙。这样做的目的是我已经从连接为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:Pythonlibsite-packagesusbcore.py", line 983, in read
ret = fn(
File "C:Pythonlibsite-packagesusbbackendlibusb1.py", line 846, in intr_read
return self.__read(self.lib.libusb_interrupt_transfer,
File "C:Pythonlibsite-packagesusbbackendlibusb1.py", line 936, in __read
_check(retval)
File "C:Pythonlibsite-packagesusbbackendlibusb1.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", ATTRS{idVendor}=="0461", MODE="0666"
请注意,您需要将0461
(Primax的vendorID是什么(更改为您的设备。(…或者完全踢出ATTRS…,部分(
所以在它看起来像这样之前:(注i针对总线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