该应用程序使用 USB 串行通信,当 PC 从 HDD 启动时工作正常。
我已经创建了工作操作系统的 liveUSB 镜像 (.iso)。 从包含 .iso 镜像的 USB 驱动器启动同一台 PC。
现在,DUT 已连接并且应用程序正在运行,大多数时候报告Garbage on the Line。然而,它确实在一些尝试中起作用,这是非常不一致的。
我不明白从 Live USB 启动与从 HDD 启动有何不同。
仅供引用,PC 有 Fedora Core 22 和 4.0.4 Linux 内核。
串行通信:波特率为 115200,有 1 个停止位。
非常感谢任何帮助。
谢谢,
青年党
编辑
我检查了dmesg
,发现了不同之处,
cdc_acm:无法在 Live USB 启动时设置 dtr/rts
。在另一种情况下是看不到的。类似于此question在 stackoverflow 上。
另一个观察,当设备连接并且 PC 从 Live U 盘启动时,串行通信工作正常。如果设备的 USB 电缆被拔下并重新插入,它会报告问题。
最佳答案
重新连接 USB 电缆后,您的串行端口号可能会增加,并且您将有一个死的/dev/ttyUSB0 并且可能有一个新的工作/dev/ttyUSBX。当您的应用程序保持打开/dev/ttyUSB0 时,它不会被删除,直到您重新启动您的应用程序。继续阅读旧的 ttyUSB0,你会得到垃圾。 第二个提示是,从实时启动时您可能有一个只读文件系统,因此您无法在/dev 文件夹中创建任何新内容,因此新设备将不会显示。
关于linux - 使用 LIVE USB 引导通过 USB 进行串行通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40134503/