linux 提供了各種工具, Linux 使用 ttySx 作為一個串口設備的名稱。例如,COM1 (DOS/Windows 名字) 是 ttyS0, COM2 是 ttyS1 等等。
創(chuàng)新互聯專注于印江企業(yè)網站建設,響應式網站建設,購物商城網站建設。印江網站建設公司,為印江等地區(qū)提供建站服務。全流程按需開發(fā),專業(yè)設計,全程項目跟蹤,創(chuàng)新互聯專業(yè)和態(tài)度為您提供的服務
任務: 顯示檢測到的系統(tǒng)串口支持
簡單的運行 dmesg 命令
$ dmesg | grep tty
輸出:
[ 37.531286] serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
[ 37.531841] 00:0b: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
[ 37.532138] 0000:04:00.3: ttyS1 at I/O 0x1020 (irq = 18) is a 16550A
setserial 命令
setserial 是一個程序用于設定并/或報告某個串口關聯的配置信息。該信息包括串口用到的I/O 端口和中斷號,以及Break鍵是否應被解釋為Secure Attention Key 等等。 僅僅是輸出如下的命令:
$ setserial -g /dev/ttyS[0123]
輸出:
/dev/ttyS0, UART: 16550A, Port: 0x03f8, IRQ: 4
/dev/ttyS1, UART: 16550A, Port: 0x1020, IRQ: 18
/dev/ttyS2, UART: unknown, Port: 0x03e8, IRQ: 4
/dev/ttyS3, UART: unknown, Port: 0x02e8, IRQ: 3
帶-g選項的setserial幫助找到你的Linux板子上的物理串口。
Linux 串口控制臺程序
一旦串口被確定了,你就能使用許多的工具來配置Linux板子:
minicom- 用于控制modem和連接到dump 設備的最好的串口通信程序。
wvidial or other GUI dial up networking program - 一個內建智能PPP 撥號器。
getty / agetty - agetty 打開一個 tty 端口, 提示登錄名稱并調用 /bin/login 命令。
grub / lilo configuration - 配置串口為系統(tǒng)控制臺。
@ toc
可在控制臺輸入
也可以用stty設置串口參數
使用后相當于串口回傳,發(fā)什么回什么
發(fā)送數據
可以對串口發(fā)送數據比如對com1口
一般情況下串口的名稱全部在dev下面,如果你沒有外插串口卡的話默認是dev下的ttyS* ,一般ttyS0對應com1,ttyS1對應com2,當然也不一定是必然的;
如果有ttyS設備,再看/dev/有沒有ttyS*,如沒有就建立一個:
如果板子的設備中沒有標準串口設備ttyS0,也沒有ttySAC0。/dev下應該有一個USB串口:/dev/ttyUSB0.
當一個串行卡或數據卡被偵測到時,它會被指定成為第一個可用的串行設備。通常是/dev/ttyS1(cua1)或/dev/ttyS2(cua2),這完成看原已內建的串口數目。ttyS*設備會被報告在/var/run/stab內。
PC上的串口一般是ttyS,板子上Linux的串口一般叫做ttySAC
可能是linux下的串口設備沒有打開,需要改變串口設備
的權限,或者根據文章頭添加用戶到組處理
可以通過以下命令 查看 板子上的硬件端口的內核設備名
該條命令會將 ttyUSB0所對應的硬件端口的kernel設備名 顯現出來, 得到KERNEL== '1-5.5.4', 而不是之前的ttyUSB0
cmd.sh如下:
./getUSB.py 調用當前路徑下的getUSB.py這個Python語言,明確此次是哪個,ttyUSB0,或者ttyUSB1掛載在端口3-1.1上
getUSB.py:
完成之后 ,設置開機啟動cmd.sh(在/etc/rc.local中設置)則每次開機之后,會從/dev/ttydata獲取到固定端口的數據
方式一
寫入內容如下:
方式二
我的硬件序列號:ATTRS{serial}=="FTSYWCXZ"這個號是唯一的
可以通過/dev/usb_0打開串口設備
常用的匹配類型:
Linux系統(tǒng)支持使用串口鍵盤,但是需要先安裝串口驅動,然后才能使用串口鍵盤。
1、安裝串口驅動:
首先,需要安裝串口驅動,可以使用以下命令安裝:
sudo apt-get install setserial
2、檢查串口:
接下來,需要檢查串口是否正常工作,可以使用以下命令檢查:
sudo setserial -g /dev/ttyS*
3、設置串口:
最后,需要設置串口,可以使用
安裝完成后,請不要著急打開軟件。需先進行配置。具體步驟如下:
查看串口設備及文件權限
linux下的所有操作面向用戶的都是文件操作,在對串口操作之前,我們應該先確認自己對該文件有沒有讀寫權限。
linux下的usb串口命名為ttyUSB*,運行上面命令,可以看到有幾個設備掛載。
我們這里是:
只有ttuUSB0.再用lsusb查看:
usb 004正是我們掛上去的usb轉串口線纜,使用的芯片是PL2303。
但是正如上面顯示,ttyUSB0這個設備是root所有的,所以,我們以普通用戶身份打開minicom是沒法訪問該文件的。
運行sudo minicom -s便進入了minicom的配置界面,使用上下鍵選擇Serial port setup,回車。此時光標在“change which setting”后面停留,它的上面有如下菜單:
我們只需輸入上面對應的字母,就可以進如相應的菜單進行設置。設置完成,回車,光標會回到“change which setting”后面,如此重復。完成按回車返回主菜單即可。
返回主菜單后,選擇“Save setup as df1”,將其保存為默認設置,然后選擇 Exit退出。需退出后重新打開minicom,軟件才會使用上述參數進行初始化。
注意:如果沒有使用USB轉串口,而是直接使用串口,那么Serial Device要配置為/dev/ttyS0。
如果上面設置順利,打開minicom
重新給設備上電后,此時,窗口里就有信息打印出來了。
1)需使用Ctrl+a 進入設置狀態(tài)
2)按z進入設置菜單
(1)O鍵:打開配置選項;
(2)W鍵:自動卷屏。當顯示的內容超過一行之後,自動將後面的內容換行。這個功能在查看內核的啟動信息時很有用。
(3)C鍵:清除屏幕的顯示內容;
(4)B鍵:瀏覽minicom的歷史顯示;
(5)X鍵:退出minicom,會提示確認退出。
Ctrl + A -- O
選擇"Filenames and paths"
更多的參數,參見"man minicom"的輸出。
如果不加這個項,那么在minicom和pc交互的時候中鍵入命令超過一行時候會被截斷,(這時候可以通過 C-a w 來開和關切換截斷行功能).
這樣,啟動之后我們會發(fā)現顯示的內容不是黑白的了。
這樣,啟動之后,所在minicom的輸出都會在filename中保留一份,如果原來文件存在,則追加,不存在則創(chuàng)建一個。
這樣,我們可以取代用 C-a * 發(fā)送命令的方式,將 C-a 替換成 [Alt] 或者 [ESC] .
這里,filename是你的腳本文件的名字,應該指定絕對路徑,否則就會在你啟動minicom的路徑下尋找。
Minicom是基于窗口的。要彈出所需功能的窗口,可按下 Ctrl-A (以下使用C-A來表示Ctrl-A),然后再按各功能鍵(a-z或A-Z)。先按C-A,再按'z',將出現一個幫助窗口,提供了所有命令的簡述。配置 minicom(-s 選項,或者C-A、O)時,可以改變這個轉義鍵,不過現在我們還是用Ctrl-A吧。
這里,只給出很少的命令,更多的交互命令參見"C-a z"的幫助輸出。
minicom -s 或啟動minicom之后運行 C-a o 來進行配置。
C:腳本文件的存放位置: C-a g 運行腳本時的路徑 。
D:選擇腳本程序: 默認 runscript ,也可以選擇 bash 腳本格式。
可以參考man手冊 man runscript .交互命令中可以運行" C-a G "來運行腳本。
參考資料 :