1. 设置串口波特率、数据位、停止位方法
bash
stty -F /dev/ttyS1 9600 cs8 -parenb -cstopb
参数含义
| 参数 | 含义 |
|---|---|
9600 |
波特率 9600 |
cs8 |
8 位数据位(cs7 是 7 位) |
-parenb |
无校验位(parenb 是启用校验,-parenb 是禁用) |
-cstopb |
1 位停止位(cstopb 是 2 位停止位,-cstopb 是 1 位) |
2. 设置串口RAW模式
bash
stty -F /dev/ttyS1 -echo -icanon -icrnl -ixon -opost -onlcr -isig -iexten -echoe -echok -echoctl echoke
各项选项含义
| 选项 | 关闭/开启 | 作用 |
|---|---|---|
echo |
关闭 (-echo) |
禁止输入字符回显到终端(防止发送和显示重复) |
icanon |
关闭 (-icanon) |
关闭规范化模式(不需要按回车才提交输入,每收到一个字符立即交给程序) |
icrnl |
关闭 (-icrnl) |
禁止将回车 \r (0x0D) 转换为换行 \n (0x0A) |
ixon |
关闭 (-ixon) |
禁止软件流控(禁用 Ctrl+S / Ctrl+Q 起停输出) |
opost |
关闭 (-opost) |
关闭输出处理(不转换换行符等,保持原始输出) |
onlcr |
关闭 (-onlcr) |
禁止输出时将换行 \n 转换为回车换行 \r\n |
isig |
关闭 (-isig) |
禁止信号字符(如 Ctrl+C、Ctrl+Z 不再产生中断/停止信号) |
iexten |
关闭 (-iexten) |
禁用扩展的终端特殊函数(某些控制字符处理) |
echoe |
关闭 (-echoe) |
禁止擦除字符回显(如按退格时不显示 ^H 或删除效果) |
echok |
关闭 (-echok) |
禁止杀掉行时回显(一般与 -icanon 一起用已无实际效果) |
echoctl |
关闭 (-echoctl) |
禁止将控制字符显示为 ^C 之类的形式 |
echoke |
开启 (无 -) |
特殊项:在规范模式下,允许杀掉行时擦除整行文本。但由于前面 -icanon,该设置实际无效果(常出现在从其它配置继承或成对关闭的回显选项组中)。 |