使用 stty 命令设置串口参数
stty 命令用于配置和显示终端设备的设置,特别是串口设置。在串口通信中,正确的参数配置对于数据传输的准确性和效率至关重要。
1. 显示串口参数信息
要查看指定串口设备的当前配置参数,可以使用以下命令:
stty -F /dev/ttyACM0 -a
该命令显示所有与指定串口 /dev/ttyACM0 相关的当前配置参数。
2. 设置串口参数信息
可以使用 stty 命令配置串口的各种参数,如速率、数据位、校验位等。
设置为7位数据位,无校验,1位停止位,无回显:
stty -F /dev/ttyACM0 speed 115200 cs7 -parenb -cstopb -echospeed 115200:设置波特率为115200。cs7:设置数据位为7。-parenb:禁用校验位。-cstopb:设置1位停止位。-echo:禁用回显。
设置为8位数据位,1位停止位,偶数校验位:
stty -F /dev/ttyACM0 speed 115200 cs8 -cstopb parenb -paroddcs8:设置数据位为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。 =