抑郁症健康,内容丰富有趣,生活中的好帮手!
抑郁症健康 > Linux stty 指令设置串口参数

Linux stty 指令设置串口参数

时间:2018-10-06 09:39:13

相关推荐

目录

1. Stty 指令简介

2. Stty 指令语法

3. Linux 串口设备

4. 配置串口属性

5. 串口数据读写操作

6. 附录.串口设置参数

1. Stty 指令简介

TTY 是 Teletype 或 Teletypewriter 的缩写,原来是指电传打字机,后来这种设备逐渐键盘和显示器取代。不管是电传打字机还是键盘显示器,都是作为计算机的终端设备存在的,所以 TTY 也泛指计算机的终端(terminal)设备。

Linux系统中,stty(set tty,设置tty)命令,即改变并打印终端行设置,用于检查和修改当前注册的终端的通信参数。

2. Stty 指令语法

# stty --help

Usage: stty [-F DEVICE] [--file=DEVICE] [SETTING]...

or: stty [-F DEVICE] [--file=DEVICE] [-a|--all]

or: stty [-F DEVICE] [--file=DEVICE] [-g|--save]

[选项]

-a, --all : 以容易阅读的方式打印当前的所有配置;

-g, --save: 以stty终端可读方式打印当前的所有配置。

-F, --file: 打印当前的所有设置打开指定的设备,并用此设备作为输入来代替标准输入

[参数]

终端设置:指定终端命令行的设置选项。

3. Linux 串口设备

Linux系统中,一切皆为文件,所以串口端口号也如此,以设备文件的形式存在。即通过访问文本文件来访问串口。

3.1 一般串口设备格式:

# /dev/ttyS*

查看所有串口设备:

# ls -l /dev/ttyS*

3.2 USB 串口设备格式:

# /dev/ttyUSB*

查看所有USB串口设备:

# ls -l /dev/ttyUSB*

3.3 查看串口驱动

# cat /proc/tty/driver/serial

3.4 查看串口设备

# dmesg | grep ttyS*

# dmesg | grep ttyUSB*

3.5 查看串口有没有设备

# grep tty /proc/devices

4. 配置串口属性

4.1 查看串口属性

# stty -a -F /dev/ttyS0

4.2 设置串口属性

# stty -F /dev/ttyS0 speed 115200 cs8 -parenb -cstopb

设置串口ttyS0波特率为115200,8位数据位,1位停止位,无校验位

5. 串口数据读写操作

5.1 向串口发送数据

# echo hello world! > /dev/ttyS0

5.2 读取串口中的数据

# cat /dev/ttyUSB0

5.3 读取串口数据并保存

# cat /dev/ttyUSB0 > serialdata.txt

6. 附录.串口设置参数

# stty -a -F /dev/ttyS0

---------------------------------------------------------------------------------------------------------​

speed 9600 baud; rows 24; columns 80;

​ intr = ^C; quit = ^; erase = ^?; kill = ^U; eof = ^D; eol = ;

​ eol2 = ; swtch = ; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R;

​ werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0;

​ -parenb -parodd cs8 hupcl -cstopb cread clocal -crtscts

​ -ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff

​ -iuclc -ixany -imaxbel

​ opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0

​ isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt

​ echoctl echoke -flusho -extproc

---------------------------------------------------------------------------------------------------------​

特殊字符:

* dsusp 字符 每当输入刷新时会发送一个用于终端阻塞信号的字符

eof 字符 表示文件末尾而发送的字符(用于终止输入)

eol 字符 为表示行尾而发送的字符

* eol2 字符 为表示行尾而发送的另一个可选字符

erase 字符 擦除前一个输入文字的字符

intr 字符 用于发送中断信号的字符

kill 字符 用于擦除当前终端行的字符

* lnext 字符 用于输入下一个引用文字的字符

quit 字符 用于发送退出信号的字符

* rprnt 字符 用于重绘当前行的字符

start 字符 在停止后重新开启输出的字符

stop 字符 停止输出的字符

susp 字符 发送终端阻断信号的字符

* swtch 字符 在不同的shell 层次间切换的字符

* werase 字符 擦除前一个输入的单词的字符

特殊设置:

N设置输入输出速度为N 波特

* cols N 统治内核终端上有N 栏

* columns N 等于cols N

ispeed N 设置输入速度为N 波特

* line N 设置行约束规则为N

min N 和 -icanon 配合使用,设置每次一完整读入的最小字符数为<N>

ospeed N 设置输出速度为N 波特

* rows N 向内核通告此终端有N 行

* size根据内核信息输出当前终端的行数和列数

speed 输出终端速度(单位为波特)

time N 和-icanon 配合使用,设置读取超时为N 个十分之一秒

控制设置:

[-]clocal 禁用调制解调器控制信号

[-]cread 允许接收输入

* [-]crtscts 启用RTS/CTS 握手

csN设置字符大小为N 位,N 的范围为5 到8

[-]cstopb 每个字符使用2 位停止位 (要恢复成1 位配合"-"即可)

[-]hup 当最后一个进程关闭标准终端后发送挂起信号

[-]hupcl 等于[-]hup

[-]parenb 对输出生成奇偶校验位并等待输入的奇偶校验位

[-]parodd 设置校验位为奇数 (配合"-"则为偶数)

输入设置:

[-]brkint 任务中断会触发中断信号

[-]icrnl 将回车转换为换行符

[-]ignbrk 忽略中断字符

[-]igncr 忽略回车

[-]ignpar 忽略含有奇偶不对称错误的字符

* [-]imaxbel 发出终端响铃但不刷新字符的完整输入缓冲

[-]inlcr 将换行符转换为回车

[-]inpck 启用输入奇偶性校验

[-]istrip 剥除输入字符的高8 位比特

* [-]iutf8 假定输入字符都是UTF-8 编码

* [-]iuclc 将大写字母转换为小写

* [-]ixany 使得任何字符都会重启输出,不仅仅是起始字符

[-]ixoff 启用开始/停止字符传送

[-]ixon 启用XON/XOFF 流控制

[-]parmrk 标记奇偶校验错误 (结合255-0 字符序列)

[-]tandem 等于[-]ixoff

输出设置:

* bsN退格延迟的风格,N 的值为0 至1

* crN回车延迟的风格,N 的值为0 至3

* ffN换页延迟的风格,N 的值为0 至1

* nlN换行延迟的风格,N 的值为0 至1

* [-]ocrnl 将回车转换为换行符

* [-]ofdel 使用删除字符代替空字符作填充

* [-]ofill 延迟时使用字符填充代替定时器同步

* [-]olcuc 转换小写字母为大写

* [-]onlcr 将换行符转换为回车

* [-]onlret 使得换行符的行为表现和回车相同

* [-]onocr 不在第一列输出回车

[-]opost 后续进程输出

* tabN水平制表符延迟的风格,N 的值为0 至3

* tabs等于tab0

* -tabs 等于tab3

* vtN垂直制表符延迟的风格,N 的值为0 至1

本地设置:

[-]crterase 擦除字符回显为退格符

* crtkill 依照echoprt 和echoe 的设置清除所有行

* -crtkill 依照echoctl 和echol 的设置清除所有行

* [-]ctlecho 在头字符中输出控制符号("^c")

[-]echo 回显输入字符

* [-]echoctl 等于[-]ctlecho

[-]echoe 等于[-]crterase

[-]echok 在每清除一个字符后输出一次换行

* [-]echoke 等于[-]crtkill 意义相同

[-]echonl 即使没有回显任何其它字符也输出换行

* [-]echoprt 在"\"和"/"之间向后显示擦除的字符

[-]icanon 启用erase、kill、werase 和rprnt 等特殊字符

[-]iexten 允许POSIX 标准以外的特殊字符

[-]isig 启用interrupt、quit和suspend 等特殊字符

[-]noflsh 在interrupt 和 quit 特殊字符后禁止刷新

* [-]prterase 等于[-]echoprt

* [-]tostop 中止尝试向终端写入数据的后台任务

* [-]xcase 和icanon 配合使用,用转义符"\"退出大写状态

综合设置:

* [-]LCASE 等于[-]lcase

cbreak 等于-icanon

-cbreak 等于icanon

cooked 等于brkint ignpar istrip icrnl ixon opost isig icanon eof eol 等的默认值

-cooked 等于-raw

crt等于echoe echoctl echoke

dec等于echoe echoctl echoke -ixany intr ^c erase 0177 kill ^u

* [-]decctlq 等于[-]ixany

ek清除所有字符,将它们回溯为默认值

evenp 等于parenb -parodd cs7

-evenp 等于-parenb cs8

* [-]lcase 等于xcase iuclc olcuc

litout 等于-parenb -istrip -opost cs8

-litout 等于parenb istrip opost cs7

nl等于-icrnl -onlcr

-nl等于icrnl -inlcr -igncr onlcr -ocrnl -onlret

oddp等于parenb parodd cs7

-oddp 等于-parenb cs8

[-]parity 等于[-]evenp

pass8 等于-parenb -istrip cs8

-pass8 等于parenb istrip cs7

raw等于-ignbrk -brkint -ignpar -parmrk -inpck -istrip

-inlcr -igncr -icrnl -ixon -ixoff -iuclc -ixany

-imaxbel -opost -isig -icanon -xcase min 1 time 0

-raw等于cooked

sane等于cread -ignbrk brkint -inlcr -igncr icrnl -iutf8

-ixoff -iuclc -ixany imaxbel opost -olcuc -ocrnl onlcr

-onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0

isig icanon iexten echo echoe echok -echonl -noflsh

-xcase -tostop -echoprt echoctl echoke,

所有特殊字符均使用默认值

————————————————

版权声明:本文为CSDN博主「无尾猴」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:/qq_34796705/article/details/116013286

如果觉得《Linux stty 指令设置串口参数》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。