从串行接口读取

从串行接口读取

我有一个正在运行的串行设备,除了读取其输出外,我需要从中读取数据(我完全无法控制设备本身);在Windows中使用超级终端,我能够检测到有意义的流量,昨天当我使用cat(或我自己的小C程序来读取数据并将其打印到标准输出)时,它工作得很好。

今天,当我使用 cat/我的程序时,我得到的只是一种损坏的数据,但超级终端仍然显示数据。

可能出了什么问题?怎么可能昨天还有效,今天却不行呢?

我正在/正在阅读的文件是/dev/ttyUSB1

*请注意,我从不同时运行我的程序和猫,一次只运行其中一个。

答案1

SO 上有人暗示了正确的方向;问题出在波特率上,它被设置为与我需要的不同的值。

检查波特率: stty -F /dev/ttyUSB1
设置波特率:( stty -F /dev/ttyUSB1 57600在我的例子中,57600 是我的设备需要的波特率)

现在它就像魅力一样发挥作用。

答案2

串行端口是特别奇怪的野兽。您将需要使用 Old School 终端仿真程序。我曾经认为tip这是最好的,但似乎没有人拥有它的来源了。cu自带UUCP,安装和配置非常麻烦,根本不用费心。

快速谷歌搜索告诉我人们倾向于使用小型计算机这些日子。这是一个堆栈溢出问题这似乎有一定的影响,至少在使用minicom与 USB 串行设备通信时是这样。

让我们知道结果如何。更新您的问题或发表评论或其他内容。

相关内容