Serial-Port

如何將數據發送到串列埠並查看任何答案?

  • August 8, 2019

在 Linux 上,我想將命令字元串(即一些數據)發送到串列埠(包含控製字元),並監聽響應(通常也可能包含控製字元)。

如何在 Linux 上盡可能簡單地做到這一點?一個例子表示讚賞!

Unix 上的所有設備都映射到一個設備文件,串列埠將是 /dev/ttyS0 /dev/ttyS1… 。

首先看一下該文件的權限,假設您使用的是/dev/ttyS1.

ls -l /dev/ttyS1

您將需要 read.write 訪問權限,如果這是一個共享系統,那麼您應該考慮向所有人開放它的安全後果。

chmod o+rw /dev/ttyS1

寫入文件的一個非常簡單粗略的方法是使用簡單的echo命令。

echo -ne '\033[2J' > /dev/ttyS1

並閱讀

cat -v < /dev/ttyS1

您可以讓 cat 在一個終端中執行,並在第二個終端中回顯。

如果一切都是亂碼,那麼波特率、位設置可能需要在開始發送之前進行設置。stty會這樣做。!!注意 stty 將使用 stdin 作為預設文件描述符來影響。

等效命令。

stty 19200 < /dev/ttyS1
stty 19200 -F /dev/ttyS1

這可能足以讓您編寫腳本並記錄?不確定您要達到的目標。

為了更具互動性,請記住您的預設設置方法是使用 minicom它只是一個程序,它可以完成我迄今為止提到的所有事情。(類似於 Windows 中的超級終端,您可能很熟悉)。

一個中間解決方案是使用一個screen可以在串列設備上執行的終端程序。

screen /dev/ttyS1

man screen man minicom man stty了解更多資訊

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