菜鸟科技网

Linux打开串口命令具体怎么用?

在Linux系统中,串口通信是嵌入式开发、设备调试和数据传输的重要手段,掌握正确的串口打开和操作命令是开发者的必备技能,本文将详细介绍Linux下打开串口的完整流程,包括权限检查、设备识别、参数配置及常用操作工具,并通过表格对比不同场景下的命令使用方法,最后附上相关FAQs解答常见问题。

Linux打开串口命令具体怎么用?-图1
(图片来源网络,侵删)

串口设备基础概念

Linux系统中,串口设备通常以/dev/ttySx(x为0,1,2…)表示物理串口,以/dev/ttyUSBx(x为0,1,2…)表示USB转串口设备,在操作串口前,需确认设备是否存在:通过ls /dev/tty*命令列出所有串口设备,或使用dmesg | grep tty查看系统启动时识别的串口信息,若设备未显示,可能需要安装驱动(如pl2303、ch341等USB转串口驱动)。

串口权限配置

默认情况下,普通用户可能无法访问串口设备,需通过以下方式配置权限:

  1. 用户组法:将当前用户加入dialout组(多数Linux发行版默认串口属组为dialout),执行sudo usermod -aG dialout $USER后重新登录生效。
  2. udev规则法:创建规则文件(如/etc/udev/rules.d/99-usb-serial.rules),添加内容KERNEL=="ttyUSB*", MODE="0666"SUBSYSTEM=="tty", KERNEL=="ttyUSB*", GROUP="dialout", MODE="0660",执行sudo udevadm control --reload-rules && sudo udevadm trigger使规则生效。

打开串口的常用命令

使用minicom工具

minicom是一款功能强大的串口终端模拟工具,安装后可通过以下步骤打开串口:

sudo apt install minicom  # 安装minicom(Debian/Ubuntu系统)
minicom -D /dev/ttyUSB0  # 直接打开指定串口

首次使用需配置minicom:运行minicom -s进入设置界面,选择“Serial port setup”,配置串口设备(Serial Device)、波特率(Bps/Parity/Bits)、硬件流控(Hardware Flow Control)等参数,保存退出后即可通过Ctrl+A X退出。

Linux打开串口命令具体怎么用?-图2
(图片来源网络,侵删)

使用screen工具

screen是轻量级的终端复用工具,适合快速调试串口:

sudo apt install screen  # 安装screen
screen /dev/ttyUSB0 115200  # 打开串口并设置波特率

操作快捷键:Ctrl+A K退出当前窗口,Ctrl+A D分离会话(可通过screen -r重新连接)。

使用cu工具

cu是call-unix的缩写,支持直接与串口设备通信:

sudo apt install cu  # 安装cu
cu -l /dev/ttyUSB0 -s 115200  # 指定串口和波特率

退出时输入(波浪线加点)。

Linux打开串口命令具体怎么用?-图3
(图片来源网络,侵删)

使用picocom工具

picocom是轻量级串口终端,适合简单调试:

sudo apt install picocom  # 安装picocom
picocom -b 115200 /dev/ttyUSB0  # 打开串口并设置波特率

退出时按Ctrl+A,再按X确认退出。

串口参数配置详解

串口通信需确保两端参数一致,核心参数包括:

  • 波特率(Baud Rate):如9600、19200、115200等,需通过stty命令在命令行配置,例如stty -F /dev/ttyUSB0 115200
  • 数据位(Data Bits):通常为8位,可通过stty -F /dev/ttyUSB0 cs8设置。
  • 停止位(Stop Bits):通常为1位,可通过stty -F /dev/ttyUSB0 -cstopb设置。
  • 校验位(Parity):无校验(none)、奇校验(odd)、偶校验(even),例如stty -F /dev/ttyUSB0 -parenb表示无校验。
  • 流控(Flow Control):硬件流控(RTS/CTS)或软件流控(XON/XOFF),可通过stty -F /dev/ttyUSB0 -crtscts禁用硬件流控。

不同工具的命令对比

工具名称 安装命令 打开串口命令示例 退出方式 特点
minicom sudo apt install minicom minicom -D /dev/ttyUSB0 Ctrl+A X 功能全面,支持脚本配置
screen sudo apt install screen screen /dev/ttyUSB0 115200 Ctrl+A K 轻量级,支持会话分离
cu sudo apt install cu cu -l /dev/ttyUSB0 -s 115200 简单直接,适合基础通信
picocom sudo apt install picocom picocom -b 115200 /dev/ttyUSB0 Ctrl+A X 轻量级,资源占用低

高级操作:使用pythonpyserial

在自动化脚本中,可通过Python的pyserial库操作串口:

pip install pyserial  # 安装pyserial

示例代码:

import serial
ser = serial.Serial('/dev/ttyUSB0', 115200, timeout=1)
ser.write(b'Hello, Serial!')
data = ser.readline()
print(data.decode())
ser.close()

相关问答FAQs

问题1:为什么提示“Permission denied”错误?
解答:该错误通常是由于用户没有串口设备的访问权限,解决方案有两种:

  1. 临时使用sudo权限:sudo minicom -D /dev/ttyUSB0(不推荐,仅临时使用);
  2. 永久权限配置:将用户加入dialout组(sudo usermod -aG dialout $USER)或通过udev规则修改设备权限(如KERNEL=="ttyUSB*", MODE="0666"),配置后需重新登录或重新插拔设备。

问题2:如何验证串口通信是否正常?
解答:可通过以下步骤验证:

  1. 硬件环回测试:将串口的TX(发送)和RX(接收)引脚短接,使用minicomscreen打开串口,输入任意字符,若能正常回显,则串口硬件正常;
  2. 软件工具测试:使用cat /dev/ttyUSB0命令读取串口数据,同时在另一终端通过echo "test" > /dev/ttyUSB0发送数据,若接收端能收到“test”,则串口通信正常;
  3. 逻辑分析仪抓包:通过逻辑分析仪观察TX/RX引脚的波形和数据,确认信号是否符合协议规范。
分享:
扫描分享到社交APP
上一篇
下一篇