使用 stty
命令设置串口参数
stty
命令用于配置和显示终端设备的设置,特别是串口设置。在串口通信中,正确的参数配置对于数据传输的准确性和效率至关重要。
1. 显示串口参数信息
要查看指定串口设备的当前配置参数,可以使用以下命令:
stty -F /dev/ttyACM0 -a
该命令显示所有与指定串口 /dev/ttyACM0
相关的当前配置参数。
2. 设置串口参数信息
可以使用 stty
命令配置串口的各种参数,如速率、数据位、校验位等。
设置为7位数据位,无校验,1位停止位,无回显:
stty -F /dev/ttyACM0 speed 115200 cs7 -parenb -cstopb -echo
speed 115200
:设置波特率为115200。cs7
:设置数据位为7。-parenb
:禁用校验位。-cstopb
:设置1位停止位。-echo
:禁用回显。
设置为8位数据位,1位停止位,偶数校验位:
stty -F /dev/ttyACM0 speed 115200 cs8 -cstopb parenb -parodd
cs8
:设置数据位为8。parenb
:启用校验位。-parodd
:设置为偶数校验。
3. 串口发送数据
要向指定串口发送数据,可以使用以下命令:
echo "1234456" > /dev/ttyACM0
该命令将字符串 “1234456” 发送到 /dev/ttyACM0
设备。
4. 显示串口接收数据
可以在后台显示从串口接收的数据:
cat /dev/ttyACM0 &
该命令在后台实时显示从 /dev/ttyACM0
接收到的数据。
5. 其他 stty
命令功能
清除串口缓冲区:
stty -F /dev/ttyACM0 flush
清除输入和输出缓冲区的数据。
设置特定的控制字符:
stty -F /dev/ttyACM0 intr ^C susp ^Z
设置中断字符为 Ctrl+C,挂起字符为 Ctrl+Z。
显示串口状态:
stty -F /dev/ttyACM0 status
显示串口的当前状态信息。
等待并读取一行数据:
stty -F /dev/ttyACM0 raw; cat /dev/ttyACM0; stty -F /dev/ttyACM0 -raw
在原始模式下读取数据,并在读取后恢复到正常模式。
监视串口输入:
stty -F /dev/ttyACM0 -icanon min 1 time 0 && cat /dev/ttyACM0
设置串口为非规范模式,立即读取字符。
设置串口为非阻塞模式:
stty -F /dev/ttyACM0 -icanon -echo -echoe -echok -echoctl -echoke -icrnl -ixon -ixoff -ixon
禁用规范模式和各种回显,禁用输入控制字符映射。
设置输出换行模式:
stty -F /dev/ttyACM0 opost -onlcr
启用输出处理,但禁用换行映射。
设置输入换行模式:
stty -F /dev/ttyACM0 -icrnl
禁用输入回车转换为换行。
设置流控制:
stty -F /dev/ttyACM0 -crtscts
禁用硬件流控制。
设置输入速率和输出速率:
stty -F /dev/ttyACM0 ispeed 9600 ospeed 9600
分别设置输入和输出的波特率为9600。 =