從串行接口讀取

從串行接口讀取

我有一個正在運行的串行設備,除了讀取其輸出外,我需要從中讀取資料(我完全無法控制設備本身);在 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 串行設備通訊時是如此。

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

相關內容