串口調試利器--minicom

[toc]

因為現在電腦基本不配備串行接口,所以,usb轉串口成為硬件調試時的必然選擇。目前知道的,PL2303的驅動是有的,在dev下的名稱是ttyUSB*
Minicom,是Linux下應用比較廣泛的串口軟件,這里簡單介紹minicom使用。

minicom配置:

安裝完成后,請不要著急打開軟件。需先進行配置。具體步驟如下:

查看串口設備及文件權限

linux下的所有操作面向用戶的都是文件操作,在對串口操作之前,我們應該先確認自己對該文件有沒有讀寫權限。

ls -l /dev/ttyUSB*

linux下的usb串口命名為ttyUSB*,運行上面命令,可以看到有幾個設備掛載。
我們這里是:

crw-rw---- 1 root dialout 188, 0 Apr 10 17:10 /dev/ttyUSB0

只有ttuUSB0.再用lsusb查看:

lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 006 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 009 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 002: ID 046d:c05a Logitech, Inc. Optical Mouse M90
Bus 007 Device 002: ID 046d:c31d Logitech, Inc.
Bus 004 Device 009: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port

usb 004正是我們掛上去的usb轉串口線纜,使用的芯片是PL2303。

但是正如上面顯示,ttyUSB0這個設備是root所有的,所以,我們以普通用戶身份打開minicom是沒法訪問該文件的。

配置minicom的參數

運行sudo minicom -s便進入了minicom的配置界面,使用上下鍵選擇Serial port setup,回車。此時光標在“change which setting”后面停留,它的上面有如下菜單:

Serial port setup [Enter]

+-------------------------------------------------------------+

| A - Serial Device : /dev/ttyUSB0 |

| B - Lockfile Location : /var/lock |

| C - Callin Program : |

| D - Callout Program -: |

| E - Bps/Par/Bits : 9600 8N1 |

| F - Hardware Flow Control : No |

| G - Software Flow Control : No |

| |

| Change which setting? |

+-------------------------------------------------------------+

我們只需輸入上面對應的字母,就可以進如相應的菜單進行設置。設置完成,回車,光標會回到“change which setting”后面,如此重復。完成按回車返回主菜單即可。
返回主菜單后,選擇“Save setup as df1”,將其保存為默認設置,然后選擇 Exit退出。需退出后重新打開minicom,軟件才會使用上述參數進行初始化。

注意:如果沒有使用USB轉串口,而是直接使用串口,那么Serial Device要配置為/dev/ttyS0。

如果上面設置順利,打開minicom

# minicom

重新給設備上電后,此時,窗口里就有信息打印出來了。

minicom基本操作如下:

1)需使用Ctrl+a 進入設置狀態

2)按z進入設置菜單

(1)O鍵:打開配置選項;

(2)W鍵:自動卷屏。當顯示的內容超過一行之後,自動將後面的內容換行。這個功能在查看內核的啓動信息時很有用。

(3)C鍵:清除屏幕的顯示內容;

(4)B鍵:瀏覽minicom的歷史顯示;

(5)X鍵:退出minicom,會提示確認退出。

配置選項目錄

Ctrl + A --> O

+-----[configuration]------+

| Filenames and paths |

| File transfer protocols -|

| Serial port setup |

| Modem and dialing |

| Screen and keyboard |

| Save setup as dfl |

| Save setup as.. |

| Exit |

+--------------------------+

選擇"Filenames and paths"

+-----------------------------------------------------------------------+

| A - Download directory : /home/wonux |

| B - Upload directory : /tmp |

| C - Script directory : /root/minicom |

| D - Script program : runscript or /bin/bash |

| E - Kermit program : |

| F - Logging options |

| |

| Change which setting? |

+-----------------------------------------------------------------------+
  • C - Script文件的存放位置:
    <C-a> g運行腳本時的路徑 。
  • D - 選擇腳本程序:
    默認runscript,也可以選擇bash腳本格式。

minicom使用

命令行啟動minicom的參數

更多的參數,參見"man minicom"的輸出。

-s 
設置。 root 使用此選項在/etc/minirc.dfl中編輯系統范圍的缺省值。使用此參數后,minicom 將不進行初始化,而是直接進入配置菜單。如果因為你的系統被改變,或者第一次運行minicom時,minicom不能啟動,這個參數就會很有用。對于多數系統,已經內定了比較合適的缺省值。 
-o 
不進行初始化。minicom 將跳過初始化代碼。如果你未復位(reset)就退出了minicom,又想重啟一次會話(session),那么用這個選項就比較爽(不會再有錯誤提示:modem is locked ---- 注)。但是也有潛在的危險:由于未對lock文件等進行檢查,因此一般用戶可能會與uucp之類的東東發生沖突......也許以后這個參數會被去掉。現在姑且假定,使用modem的用戶對自己的行為足夠負責。 
-m 
用Meta或Alt鍵重載命令鍵。在1.80版中這是缺省值,也可以在minicom 菜單中配置這個選項。不過若你一直使用不同的終端,其中有些沒有Meta或Alt鍵,那么方便的做法還是把缺省的命令鍵設置為Ctrl-A,當你有了支持 Meta或Alt鍵的鍵盤時再使用此選項。Minicom假定你的Meta鍵發送ESC前綴,而不是設置字符最高位的那一種(見下)。 
-M 
跟“-m”一樣,但是假定你的Meta鍵設置字符高端的第八位(發送128+字符代碼)。 
-z 
使用終端狀態行。僅當終端支持,并且在其termcap或terminfo數據庫入口中有相關信息時才可用。 
-l 
逐字翻譯 高位被置位的字符。使用此標志, minicom將不再嘗試將IBM行字符翻譯為ASCII碼,而是將其直接傳送。許多PC-Unix克隆不經翻譯也能正確顯示它們(Linux使用專門的模式:Coherent和Sco)。 
-w 
在啟動的時候就自動換行,這樣啟動之后不用運行<C-a> w進行設置了,詳細參考后面。 
-a 
特性使用。 有些終端,特別是televideo終端, 有個很討厭的特性處理(串行而非并行)。minicom缺省使用‘-a on’,但若你在用這樣的終端,你就可以(必須!)加上選項‘-a off’。尾字‘on’或‘off’需要加上。 
-t 
終端類型。使用此標志, 你可以重載環境變量TERM, 這在環境變量MINICOM 中使用很方便; 你可以創建一個專門的 termcap 入口以備minicom 在控制臺上使用,它將屏幕初始化為raw模式, 這樣,連同‘-l’標志一起,就可以不經翻譯而顯示IBM行字符。 
-c 
顏色使用。些終端(如Linux控制臺)支持標準ANSI轉義序列色彩。由于termcap顯然沒有對于色彩的支持,因而minicom 硬性內置了這些轉義序列的代碼。所以此選項缺省為off。使用‘-c on’可以打開此項。把這個標志,還有‘-m’放入MINICOM環境變量中是個不錯的選擇。 
-S 
腳本。 啟動時執行給定名字的腳本。到目前為止,還不支持將用戶名和口令傳送給啟動腳本。如果你還使用了‘-d’選項,以在啟動時開始撥號,此腳本將在撥號之前運行,撥號項目入口由‘-d’指明。 
-p 
要使用的偽終端。 它超載配置文件中定義的終端端口,但僅當其為偽tty設備。提供的文件名必須采用這樣的形式:(/dev/)tty[p-z][0-f] 
-C 
文件名。 啟動時打開捕獲輸出到文件。 
-8 
不經修改地傳送8位字符。“連續”意指未對地點/特性進行真正改變,就不插入地點/特性控制序列。此模式用于顯示8位多字節字符,比如日本字(TMD!應該是中國字!!)。不是8位字符的語言都需要(例如顯示芬蘭文字就不需要這個)。 

命令行參數使用舉例

  • -w: 啟動minicom的時候,開啟自動換行:

如果不加這個項,那么在minicom和pc交互的時候中鍵入命令超過一行時候會被截斷,(這時候可以通過<C-a> w來開和關切換截斷行功能).

  • -c on: 啟動minicom的時候,顯示顏色:

這樣,啟動之后我們會發現顯示的內容不是黑白的了。

  • -C <filename>: 啟動minicom的時候,自動創建日志捕捉文件<filename>:

這樣,啟動之后,所在minicom的輸出都會在<filename>中保留一份,如果原來文件存在,則追加,不存在則創建一個。

  • -m: 啟動minicom的時候,將命令鍵修改成Meta鍵(<C-a>變成[Alt]或者[ESC]等):

這樣,我們可以取代用<C-a> *發送命令的方式,將<C-a>替換成[Alt]或者[ESC].

  • -S <filename>: 啟動minicom的時候,指定運行的腳本:

這里,<filename>是你的腳本文件的名字,應該指定絕對路徑,否則就會在你啟動minicom的路徑下尋找。

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"的幫助輸出。

  • ==查看幫助==:<C-a> z.
    這樣會顯示所命令列表,便于查找。
  • ==配置選項==:<C-a> o.
  • 回到shell: <C-a> j.
    這樣minicom會在后臺stop,直到fg將它調到前臺。
  • ==開/關捕捉minicom輸出到文件==:<C-a> l.
    這樣會打開/關閉捕捉輸出功能,捕捉的輸出會存放在一個你選擇的文件中。
  • ==運行腳本==:<C-a> g:
  • 退出minicom:<C-a> x.
    這樣會退出minicom.

常用配置總結:

minicom -s 或啟動minicom之后運行<C-a> o來進行配置。

  • 選擇Serial port setup
    配置其中的如下配置項:
A - Serial Device : /dev/ttyUSB0 
E - Bps/Par/Bits : 115200 8N1 
F - Hardware Flow Control : No 
G - Software Flow Control : No 
  • 選擇Filenames and paths
    配置其中的如下配置項:
C - Script directory : /root/minicom
D - Script program : /bin/bash

C:腳本文件的存放位置: <C-a> g運行腳本時的路徑 。
D:選擇腳本程序: 默認runscript,也可以選擇bash腳本格式。

關于minicom的腳本:

可以參考man手冊man runscript.交互命令中可以運行"<C-a> G"來運行腳本。

  • 注釋是'#'開始的。
  • send命令中的字符串,有\c就不會發送默認的\r了。例:send "ls \c"就不會自動回車,這里'\c'也可以在前面。
    目前發現,腳本功能比較弱。在minicom原代碼中有簡單的例子:scriptdemo和unixlogin,可以直接在linux運行runscript.
  • 可以指定minicom的腳本運行程序:
    作為腳本解釋器的程序。缺省是“runscript”,也可用其它的東東(如: /bin/sh 或 "expect",這樣就可以用shell或者其他的腳本了_)。Stdin和Stdout連接到modem,Stderr連接到屏幕。

參考資料

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Ubuntu的發音 Ubuntu,源于非洲祖魯人和科薩人的語言,發作 oo-boon-too 的音。了解發音是有意...
    螢火蟲de夢閱讀 99,571評論 9 467
  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,949評論 18 139
  • linux資料總章2.1 1.0寫的不好抱歉 但是2.0已經改了很多 但是錯誤還是無法避免 以后資料會慢慢更新 大...
    數據革命閱讀 12,237評論 2 33
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,377評論 25 708
  • 2017.3.4晨起感恩 累計57 感恩大恩上師及諸佛菩薩的護佑和加持 感恩歷代宗親的傳承 感恩老媽養育之恩,感...
    鵲曾閱讀 206評論 0 1