python - usb.core.USBError:[Errno 5] 输入/输出错误
问题描述
描述:尝试使用以下代码读取鼠标数据,但出现如下错误。如果有人遇到过同样的问题,请提供帮助。这样做的目的是我已经从作为 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", ATTRS{idVendor}=="0461", 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
推荐阅读
- python - Openpyxl - AttributeError:'NoneType'对象没有属性'lower'
- ssl-certificate - 如何将 X.509 与 SslServerCredential 一起使用?
- azure-devops - 获取合并 PR 的源分支的名称
- python - 如何找到与所有列的给定条件集匹配的 DataFrame 行?
- php - 将 sql 查询转换为 elasticsearch 查询
- jquery - JQuery:如果元素不包含指定的单词,如何按类删除元素?
- python - AnalysisException:路径不存在:dbfs:/databricks/python/lib/python3.7/site-packages/sampleFolder/data;
- amazon-web-services - 如何将日志从多容器 Elastic Beanstalk 设置流式传输到 Cloudwatch?
- haskell - Haskell QuickCheck 运行缓慢
- flutter - Flutter Firebase 未来功能问题