python - 从 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
解决方案
推荐阅读
- java - 是否可以使用 Selenium 或任何其他工具自动化 RDP 会话?
- sql-server - 在 SQL 中插入多个值,转换失败
- javascript - Node.js:是否可以为 python 交互式 shell (REPL) 制作适配器?
- azure-resource-manager - 使用导出的 ARM 创建服务总线 - 不允许创建/更新 $Default 规则
- html - 如何将文档从一个 html 移动到另一个 (MongoDB/Node.js)
- java - Android ART 和 HotSpot 在非易失性变量可见性方面的行为是否不同?
- python - 即使数据正确,Highchart x 轴也会随机洗牌
- java - 如何找出 Eclipse 项目中使用了哪些版本的 JAR
- javascript - 在 guildCreate discord.js 上创建频道
- spring-boot - 使用 'application/json',给定 [*/*] 并支持 [application/json]