在Linux系統(tǒng)中一切皆為文件译打,串口端口號(hào)是以設(shè)備文件的形式顯示。
一般串口都是以/dev/ttyS#的格式拇颅,/dev/ttyS0奏司,/dev/ttyS1類(lèi)推樟插。
USB轉(zhuǎn)串口韵洋,會(huì)顯示為/dev/ttyUSB#竿刁,如/dev/ttyUSB0。
在使用串口進(jìn)行通信時(shí)搪缨,經(jīng)常需要使用指令來(lái)賦予用戶讀寫(xiě)的權(quán)限
$ sudo chmod 777 /dev/ttyUSB0
但這樣的權(quán)限是一次性的
每次重啟或者關(guān)閉計(jì)算機(jī)食拜,插拔USB串口都無(wú)效
查看串口 ttyUSB0
$ ls -l /dev/ttyUSB0
配置串口屬性用stty
//波特率為9600副编,parodd為奇檢驗(yàn)位负甸,-parodd為偶校驗(yàn)痹届,-parenb則是禁止校驗(yàn),cstopb為2位停止位
队腐,-cstopb為1位停止位
stty -F /dev/ttyS0 9600 parodd
//用cat讀取串口數(shù)據(jù)到test文件中
cat /dev/ttyUSB0 > test.txt
//向串口中發(fā)送數(shù)據(jù)
echo "adsdgb" > /dev/ttyUSB0
解析數(shù)據(jù)香到,相對(duì)于grep的查找悠就,sed的編輯千绪,awk在其對(duì)數(shù)據(jù)分析并生成報(bào)告時(shí),顯得尤為強(qiáng)大梗脾。簡(jiǎn)單來(lái)說(shuō)awk就是把文件逐行的讀入炸茧,以空格為默認(rèn)分隔符將每行切片,切開(kāi)的部分再進(jìn)行各種分析處理梭冠。
awk有3個(gè)不同版本: awk辕狰、nawk和gawk,未作特別說(shuō)明控漠,一般指gawk蔓倍。
在終端以H:M:S格式輸出當(dāng)前時(shí)間和來(lái)自串口的每一行前3個(gè)字符
cat /dev/ttyUSB0 | gawk ’{print strftime("%T"), substr($1 ,1,3)}’
Linux stty命令
stty
總覽
stty [-F device] [--file=device] [SETTING]...
stty [-F device] [--file=device] [-a|--all]
stty [-F device] [--file=device] [-g|--save]
-a,–all 以人可讀的方式打印所有當(dāng)前設(shè)置盐捷;-a參數(shù)比單獨(dú)的stty命令輸出的終端信息更詳細(xì)
-g偶翅,–save 以stty可讀的方式打印當(dāng)前所有設(shè)置
-F,–file=DEVICE 打開(kāi)并使用特定的設(shè)備((DEVICE)以代替標(biāo)準(zhǔn)輸入(stdin)
–help 顯示幫助并退出
–version 顯示版本并退出
特殊字符
例子為:
stty size 打印終端行數(shù)和列數(shù)
在命令行下禁止輸出小寫(xiě)
stty olcuc #開(kāi)啟
stty -olcuc#恢復(fù)
stty eof “string”
系統(tǒng)默認(rèn)是ctrl+D來(lái)表示文件的結(jié)束,而通過(guò)這種方法,可以改變!
屏蔽顯示
stty -echo #禁止回顯
stty echo #打開(kāi)回顯
測(cè)試方法:
stty -echo;read;stty echo;read
忽略回車(chē)符
stty igncr #開(kāi)啟
stty -igncr#恢復(fù)
stty -ixon
將流控制設(shè)置為OFF
stty ixon
則將其置為ON
stty ixon 1200
該命令將終端設(shè)置為1200波特碉渡,并將流控制置為ON
利用它設(shè)置我們的串口打印操作信息聚谁。
stty -F /dev/ttyS0 speed 115200 cs8 -parenb -cstopb -echo
解釋?zhuān)和ㄟ^(guò)stty設(shè)置/dev/ttyS0串口, 波特率為115200 滞诺,數(shù)據(jù)位cs8形导,奇偶校驗(yàn)位-parenb环疼,停止位-cstopb,同時(shí)-echo禁止終端回顯
選項(xiàng)parenb使終端進(jìn)行奇偶校驗(yàn),-parenb則是禁止校驗(yàn)朵耕;
選項(xiàng)cs5秦爆、cs6、cs7和cs8分別將字符大小設(shè)為5憔披、6、7和8比特爸吮;
選項(xiàng)300芬膝、600锰霜、1200癣缅、2400、4800哄酝、9600和19200設(shè)置波特率