1.概要
1.记忆要点
stty -F /dev/ttyS0 -a
setserial -g /dev/ttyS0
2.内容
在 Ubuntu 系统中查看串口(如 /dev/ttyS0
或 /dev/ttyUSB0
)的波特率等配置信息,可以通过以下方法操作:
方法 1:使用 stty
命令
stty -F /dev/ttyS0 -a
- 作用:直接显示串口的详细配置(包括波特率、数据位、停止位等)。
- 输出示例:
speed 9600 baud; line = 0; intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; discard = ^O; min = 1; time = 0;
speed 9600 baud
表示当前波特率为 9600。
方法 2:使用 setserial
命令
sudo setserial -g /dev/ttyS0
- 作用:显示串口的底层硬件配置(如波特率基址、除数等)。
- 输出示例:
/dev/ttyS0, UART: 16550A, Port: 0x03f8, IRQ: 4
- 波特率可能通过
baud_base
和divisor
计算(需结合驱动配置)。
- 波特率可能通过
方法 3:查看 /sys
文件系统
cat /sys/class/tty/ttyS0/device/driver/ttyS0/baud_base
- 作用:直接读取内核中记录的波特率基址(需结合除数计算实际波特率)。
步骤总结
-
确认串口设备名:
dmesg | grep tty # 查看最近连接的串口设备 ls /dev/ttyS* /dev/ttyUSB* # 列出所有串口设备
查看配置:
stty -F /dev/ttyS0 -a # 推荐方法 sudo setserial -g /dev/ttyS0
-
权限问题:
- 如果提示权限不足,使用
sudo
或以当前用户加入dialout
组:sudo usermod -aG dialout $USER
- 如果提示权限不足,使用
注意事项
- 如果串口未被占用,
stty
可能无法读取配置,需先打开设备(如使用screen
或minicom
)。 - 波特率可能由硬件或驱动程序固定,需结合设备文档确认。