首页 > 解决方案 > 从 USB 万用表读取时出现超时错误

问题描述

我需要在我的 Raspberry Pi 上使用 USB 连接和 Python 从数字万用表中提取数据。在这里,我有一个非常基本的 Python 脚本,用于从通用 USB 设备读取数据,并注意 idVendor 和 idProduct 变量对于我正在使用的万用表是正确的:

import usb.core

dev=usb.core.find(idVendor=0x067b,idProduct=0x2303)
ep=dev[0].interfaces()[0].endpoints()[0]
i=dev[0].interfaces()[0].bInterfaceNumber
dev.reset()

if dev.is_kernel_driver_active(i):
   dev.detach_kernel_driver(i)

dev.set_configuration()
eaddr=ep.bEndpointAddress

r=dev.read(eaddr,1024)
print(len(r))

我在路径 /etc/udev/rules.d/99-usbftdi.rules 中有一个规则文件。它具有以下内容:

SUBSYSTEM=="usb", ATTRS{idVendor}=="0x067b", MODE="0666"

当我将万用表连接到我的 Raspberry Pi 时尝试执行该文件时,我收到以下错误消息:

Traceback (most recent call last):
  File "usbRead.py", line 14, in <module>
    r=dev.read(eaddr,1024)
  File "/home/pi/.local/lib/python2.7/site-packages/usb/core.py", line 1024, in read
    self.__get_timeout(timeout))
  File "/home/pi/.local/lib/python2.7/site-packages/usb/backend/libusb1.py", line 869, in intr_read
    timeout)
  File "/home/pi/.local/lib/python2.7/site-packages/usb/backend/libusb1.py", line 954, in __read
    _check(retval)
  File "/home/pi/.local/lib/python2.7/site-packages/usb/backend/libusb1.py", line 602, in _check
    raise USBTimeoutError(_strerror(ret), ret, _libusb_errno[ret])
usb.core.USBTimeoutError: [Errno 110] Operation timed out


------------------
(program exited with code: 1)
Press return to continue

标签: pythontimeoutusb

解决方案


推荐阅读