【发布时间】:2017-06-27 22:26:13
【问题描述】:
我正在使用 Arduino Nano(以前是 UNO)从传感器收集数据,然后通过 USB 连接通过供电集线器将数据发送回运行 Jessie 4.1.19+ 的 Raspberry Pi 模型 B 2016 年 3 月 15 日和 Python 2.7。 python代码使用pyserial readline获取数据。
通常它工作正常,但偶尔(通常一天几次)它会因上述消息而失败。似乎修复它的唯一方法是拔下 USB 连接,重新连接并重新启动程序。我更改了代码以捕获异常,但它不会重新打开连接,并给出错误:
serial.serialutil.SerialException: 无法打开端口 /dev/ttyUSB0: [Errno 2] 没有这样的文件或目录:'/dev/ttyUSB0'
UNO(在 /dev/ttyAMA0 上)和 NANO(在 /dev/ttyUSB0 上)都会出现此问题。
就在最近,我发现在此故障之后 Nano 已移至 /dev/ttyUSB1。然后,python 代码将针对 /dev/ttyUSB1 成功运行,但当问题再次出现时,它会切换回 /dev/ttyUSB0。
因此,我更改了代码以拦截异常并打开替代设备并继续。到目前为止,这一切正常,但显然不正确。
谁能建议问题可能出在哪里以及我该如何进行诊断?我不是超级技术!此外,我还看到了一些关于这个主题的其他帖子,但在这种情况下,恢复到以前的内核级别并不实际。
已更新以包含以下日志输出。有两种设备:NANO (1a86:7523) 和 OWL 电源监视器 (0fde:ca05)。
$ dmesg -T
[2017 年 2 月 11 日星期六 14:53:02] usb 1-1.3-port2:被集线器禁用(EMI?),重新启用...
[2017 年 2 月 11 日星期六 14:53:02] USB 1-1.3.2:USB 断开连接,设备编号 71
[2017 年 2 月 11 日星期六 14:53:03] dwc_otg_hcd_handle_hc_fsm:173 个回调被抑制
[2017 年 2 月 11 日星期六 14:53:03] 传输到设备 72 端点 0x1 帧 1649 失败 - FIQ 报告 NYET。数据可能已丢失。
[2017 年 2 月 11 日星期六 14:53:03] 传输到设备 72 端点 0x1 帧 1650 失败 - FIQ 报告 NYET。数据可能已丢失。
[2017 年 2 月 11 日星期六 14:53:03] ch341-uart ttyUSB1:usb_serial_generic_read_bulk_callback - urb 停止:-32
[2017 年 2 月 11 日星期六 14:53:03] 传输到设备 72 端点 0x1 帧 1651 失败 - FIQ 报告 NYET。数据可能已丢失。
[2017 年 2 月 11 日星期六 14:53:03] 传输到设备 72 端点 0x1 帧 1652 失败 - FIQ 报告 NYET。数据可能已丢失。
[2017 年 2 月 11 日星期六 14:53:03] 传输到设备 72 端点 0x1 帧 1653 失败 - FIQ 报告 NYET。数据可能已丢失。
[2017 年 2 月 11 日星期六 14:53:03] ch341-uart ttyUSB1:usb_serial_generic_read_bulk_callback - urb 停止:-32
[2017 年 2 月 11 日星期六 14:53:03] 传输到设备 72 端点 0x1 帧 1654 失败 - FIQ 报告 NYET。数据可能已丢失。
[2017 年 2 月 11 日星期六 14:53:03] 传输到设备 72 端点 0x1 帧 1655 失败 - FIQ 报告 NYET。数据可能已丢失。
[2017 年 2 月 11 日星期六 14:53:03] 传输到设备 72 端点 0x1 帧 1656 失败 - FIQ 报告 NYET。数据可能已丢失。
[2017 年 2 月 11 日星期六 14:53:03] 传输到设备 72 端点 0x1 帧 1657 失败 - FIQ 报告 NYET。数据可能已丢失。
[2017 年 2 月 11 日星期六 14:53:03] 传输到设备 72 端点 0x1 帧 1658 失败 - FIQ 报告 NYET。数据可能已丢失。
[2017 年 2 月 11 日星期六 14:53:03] USB 1-1.3.2:使用 dwc_otg 的新全速 USB 设备编号 73
[2017 年 2 月 11 日星期六 14:53:03] USB 1-1.3.2:找到新的 USB 设备,idVendor=0fde,idProduct=ca05
[2017 年 2 月 11 日星期六 14:53:03] USB 1-1.3.2:新 USB 设备字符串:Mfr=1,Product=2,SerialNumber=3
[2017 年 2 月 11 日星期六 14:53:03] USB 1-1.3.2:产品:OWL 无线电量监测器 USB 版本已连接
[2017 年 2 月 11 日星期六 14:53:03] USB 1-1.3.2:制造商:Silicon Labs
[2017 年 2 月 11 日星期六 14:53:03] USB 1-1.3.2:序列号:001A3C26
[2017 年 2 月 11 日星期六 14:53:03] cp210x 1-1.3.2:1.0:检测到 cp210x 转换器
[2017 年 2 月 11 日星期六 14:53:03] USB 1-1.3.2:cp210x 转换器现在连接到 ttyUSB0
[2017 年 2 月 11 日星期六 14:53:03] usb 1-1.3-port3:被集线器禁用(EMI?),重新启用...
[2017 年 2 月 11 日星期六 14:53:03] USB 1-1.3.3:USB 断开连接,设备编号 72
[2017 年 2 月 11 日星期六 14:53:03] ch341-uart ttyUSB1:ch341-uart 转换器现在与 ttyUSB1 断开连接
[2017 年 2 月 11 日星期六 14:53:03] ch341 1-1.3.3:1.0:设备已断开连接
[2017 年 2 月 11 日星期六 14:53:03] USB 1-1.3.3:使用 dwc_otg 的新全速 USB 设备编号 74
[2017 年 2 月 11 日星期六 14:53:03] USB 1-1.3.3:找到新的 USB 设备,idVendor=1a86,idProduct=7523
[2017 年 2 月 11 日星期六 14:53:03] USB 1-1.3.3:新 USB 设备字符串:Mfr=0,Product=2,SerialNumber=0
[2017 年 2 月 11 日星期六 14:53:03] USB 1-1.3.3:产品:USB2.0-Serial
[2017 年 2 月 11 日星期六 14:53:03] ch341 1-1.3.3:1.0:检测到 ch341-uart 转换器
[2017 年 2 月 11 日星期六 14:53:03] USB 1-1.3.3:ch341-uart 转换器现在连接到 ttyUSB2
[2017 年 2 月 11 日星期六 14:53:05] cp210x ttyUSB0:cp210x 转换器现在与 ttyUSB0 断开连接
[2017 年 2 月 11 日星期六 14:53:05] cp210x 1-1.3.2:1.0:设备已断开连接
【问题讨论】:
标签: raspberry-pi raspbian arduino-uno pyserial usbserial