Serial-Port

在 Linux 上配置串口的最簡單方法是什麼?

  • March 25, 2019

在 Windows 命令提示符下配置串口,我可以簡單的使用:

mode com1: 9600,n,8,1

或閱讀配置:

mode com1:

Linux中是否有類似的命令?在 Linux 中查找和配置串列埠的最簡單方法是什麼?

您可以使用該stty命令設置此類參數。

這將顯示第一個串列埠上的所有設置(如果使用 USB 串列埠,則替換為)ttyS0ttyUSB0

stty -F /dev/ttyS0 -a

這會將波特率設置為 9600、8 位、1 個停止位、無奇偶校驗:

stty -F /dev/ttyS0 9600 cs8 -cstopb -parenb

通常讓人們感到困惑的一件事是,大多數串列驅動程序會在設備關閉後將設置重置為預設值(即不再有程序打開設備)。所以上面的stty命令將設置設置,然後當它完成後驅動程序再次重置它們。如果您首先讓 POS 軟體打開設備,然後執行stty設置,它們應該會一直存在,直到您的 POS 軟體再次關閉設備(例如退出時)。

我曾認為 POS 軟體應該有某種方式自行配置這些設置。如果您正在編寫自己的軟體來驅動列印機,請確保首先打開設備,然後執行stty命令。

您可能還需要使用其他設置,例如opost意味著將執行輸出後處理。如果opostonlcr都設置了,onlcr則將導致在輸出換行符 (0xa) 字節時添加額外的輸入符 (0xd),通常是為了防​​止階梯式列印,例如

This is a line
             This is the next line

這可能是也可能不是您想要的。如果您想將原始的一對一輸出到列印機opost關閉(添加-opoststty參數)。

握手(流量控制)也由 控制stty,在不了解列印機的情況下,我不知道您是否需要設置任何東西。

檢查stty手冊頁以獲取更多資訊。

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