该应用程序使用USB串行通信,当PC从HDD启动时工作正常。
我创建了一个工作操作系统的liveUSB映像(.iso)。 从包含.iso映像的USB驱动器启动相同的PC。
现在,DUT已连接并且应用程序已运行,大多数情况下会报告线路上的垃圾。但是,它确实在某些尝试中起作用,它非常不一致。
我无法理解Live USB的启动与HDD启动有何不同。
仅供参考,PC有Fedora Core 22和4.0.4 Linux内核。
串行通信:波特率为115200,有1个停止位。
非常感谢任何帮助。
谢谢,
流星
修改
我检查了dmesg
并找到了区别,
cdc_acm : failed to set dtr/rts
。在另一种情况下没有看到。与stackoverflow上的question类似。
另一个观察结果是,当连接设备和PC从Live USB记忆棒启动时,串行通信正常工作。如果拔下设备的USB电缆并重新插入,则会报告问题。
答案 0 :(得分:0)
重新连接USB电缆后,您的串行端口号可能会增加,您将有一个死/ dev / ttyUSB0,可能还有一个新的工作/ dev / ttyUSBX。当您的应用程序保持/ dev / ttyUSB0打开时,在重新启动应用程序之前不会删除它。继续阅读旧的ttyUSB0,你就会得到垃圾。 第二个提示是,从实时启动时你可能只有一个只读文件系统,因此你无法在/ dev文件夹中创建任何新内容,因此新设备不会显示。