在Linux系统中一切皆为文件,串口端口号是以设备文件的形式显示。
一般串口都是以/dev/ttyS#的格式,/dev/ttyS0,/dev/ttyS1类推。
USB转串口,会显示为/dev/ttyUSB#,如/dev/ttyUSB0。
在使用串口进行通信时,经常需要使用指令来赋予用户读写的权限
$ sudo chmod 777 /dev/ttyUSB0
但这样的权限是一次性的
每次重启或者关闭计算机,插拔USB串口都无效
查看串口 ttyUSB0
$ ls -l /dev/ttyUSB0
配置串口属性用stty
//波特率为9600,parodd为奇检验位,-parodd为偶校验,-parenb则是禁止校验,cstopb为2位停止位
,-cstopb为1位停止位
stty -F /dev/ttyS0 9600 parodd
//用cat读取串口数据到test文件中
cat /dev/ttyUSB0 > test.txt
//向串口中发送数据
echo "adsdgb" > /dev/ttyUSB0
解析数据,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大。简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。
awk有3个不同版本: awk、nawk和gawk,未作特别说明,一般指gawk。
在终端以H:M:S格式输出当前时间和来自串口的每一行前3个字符
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 以人可读的方式打印所有当前设置;-a参数比单独的stty命令输出的终端信息更详细
-g,–save 以stty可读的方式打印当前所有设置
-F,–file=DEVICE 打开并使用特定的设备((DEVICE)以代替标准输入(stdin)
–help 显示帮助并退出
–version 显示版本并退出
特殊字符
例子为:
stty size 打印终端行数和列数
在命令行下禁止输出小写
stty olcuc #开启
stty -olcuc#恢复
stty eof “string”
系统默认是ctrl+D来表示文件的结束,而通过这种方法,可以改变!
屏蔽显示
stty -echo #禁止回显
stty echo #打开回显
测试方法:
stty -echo;read;stty echo;read
忽略回车符
stty igncr #开启
stty -igncr#恢复
stty -ixon
将流控制设置为OFF
stty ixon
则将其置为ON
stty ixon 1200
该命令将终端设置为1200波特,并将流控制置为ON
利用它设置我们的串口打印操作信息。
stty -F /dev/ttyS0 speed 115200 cs8 -parenb -cstopb -echo
解释:通过stty设置/dev/ttyS0串口, 波特率为115200 ,数据位cs8,奇偶校验位-parenb,停止位-cstopb,同时-echo禁止终端回显
选项parenb使终端进行奇偶校验,-parenb则是禁止校验;
选项cs5、cs6、cs7和cs8分别将字符大小设为5、6、7和8比特;
选项300、600、1200、2400、4800、9600和19200设置波特率