在我使用以下命令将 ttyUSB0 波特率更改为 9600 之前,我无法使用带有诊断接口的应用程序:
sudo stty -F /dev/ttyUSB0 9600
重新启动应用程序后,它不再工作,因为波特率再次切换为 0。所以我的问题是如何将波特率永久设置为 9600,以便我的应用程序可以工作。
答案1
重新启动应用程序后,它不再起作用,因为波特率再次切换为 0。
这意味着您的应用程序或驱动程序在关闭时恢复配置。
所以我的问题是如何将波特率永久设置为 9600,以便我的应用程序可以工作
你不能。Linux 没有“默认配置“您可以像 Windows 那样进行设置……甚至 Windows 的”默认配置“在热插拔 USB 适配器时存在缺陷。
理想情况下,您的应用程序将在打开串行端口时正确设置它(您不知道它处于什么状态,因此您需要声明所需的配置)。如何执行此操作取决于您使用的语言,但简单操作open(2)
是不够的……有很多教程和库可以支持您为我能想到的所有语言执行此操作。
不太理想的是,您可以stty
在每次应用程序启动之前运行,这似乎是您已经在做的事情。