Linux
從串列介面讀取
我有一個正在執行的串列設備,除了讀取它的輸出之外,我需要從中讀取數據(我完全無法控制設備本身);在 Windows 中使用超級終端,我能夠檢測到有意義的流量,昨天當我使用 cat(或我自己的小 C 程序來讀取數據並將其列印到標準輸出)時,它執行良好。
今天,當我使用 cat/my 程序時,我得到的只是一種損壞的數據,但超級終端仍然顯示數據。
什麼可能是錯的?它怎麼可能昨天起作用,但今天卻不行?
我正在/正在閱讀的文件是
/dev/ttyUSB1
*請注意,我從不同時執行我的程序和貓,一次只執行其中一個。
SO上有人暗示了正確的方向;問題出在波特率上,它被設置為與我需要的值不同的值。
檢查波特率:
stty -F /dev/ttyUSB1
設置波特率:(
stty -F /dev/ttyUSB1 57600
在我的情況下,57600 是我的設備需要的波特率)它現在就像一個魅力。
串列埠是特別奇怪的野獸。您將需要使用 Old School 終端仿真程序。我曾經認為
tip
是最好的,但似乎沒有人再有它的來源了。cu
UUCP 自帶,安裝和配置非常麻煩,甚至不用費心。一個快速的Google搜尋告訴我,現在人們傾向於使用minicom。這是一個 Stack Overflow 問題,它似乎有一些影響,至少在
minicom
用於與 USB 串列設備通信時。讓我們知道結果如何。更新您的問題或發表評論或其他內容。