Linux

從串列介面讀取

  • May 6, 2013

我有一個正在執行的串列設備,除了讀取它的輸出之外,我需要從中讀取數據(我完全無法控制設備本身);在 Windows 中使用超級終端,我能夠檢測到有意義的流量,昨天當我使用 cat(或我自己的小 C 程序來讀取數據並將其列印到標準輸出)時,它執行良好。

今天,當我使用 cat/my 程序時,我得到的只是一種損壞的數據,但超級終端仍然顯示數據。

什麼可能是錯的?它怎麼可能昨天起作用,但今天卻不行?

我正在/正在閱讀的文件是/dev/ttyUSB1

*請注意,我從不同時執行我的程序和貓,一次只執行其中一個。

SO上有人暗示了正確的方向;問題出在波特率上,它被設置為與我需要的值不同的值。

檢查波特率: stty -F /dev/ttyUSB1

設置波特率:( stty -F /dev/ttyUSB1 57600在我的情況下,57600 是我的設備需要的波特率)

它現在就像一個魅力。

串列埠是特別奇怪的野獸。您將需要使用 Old School 終端仿真程序。我曾經認為tip是最好的,但似乎沒有人再有它的來源了。cuUUCP 自帶,安裝和配置非常麻煩,甚至不用費心。

一個快速的Google搜尋告訴我,現在人們傾向於使用minicom這是一個 Stack Overflow 問題,它似乎有一些影響,至少在minicom用於與 USB 串列設備通信時。

讓我們知道結果如何。更新您的問題或發表評論或其他內容。

引用自:https://unix.stackexchange.com/questions/74813