Linux如何快速打开串口

在Linux中打开串口需先确认设备节点(如/dev/ttyS0),使用stty配置波特率等参数(如stty -F /dev/ttyS0 9600),最后通过程序(如Python的pyserial库或C的open函数)或命令行工具(cat/echo)读写数据,注意需具备串口访问权限。

前置准备:设备识别与权限配置

  1. 定位串口设备文件
    Linux将串口抽象为设备文件(通常位于/dev/目录):

    ls /dev/ttyS*  # 查看原生串口(如COM1对应ttyS0)
    ls /dev/ttyUSB* # 查看USB转串口设备

    Linux如何快速打开串口
    图:典型串口设备文件示例

  2. 配置用户权限
    临时添加当前用户到dialout组(需重新登录生效):

    sudo usermod -aG dialout $USER && newgrp dialout

    验证权限:

    groups  # 应显示dialout组

命令行操作:四种实时通信方法

▶ 方法1:screen命令(最简交互)

   screen /dev/ttyUSB0 115200  # 115200为波特率
  • 退出Ctrl+Aky
  • 适用场景:快速测试设备通信

▶ 方法2:minicom(功能更完整)

   sudo apt install minicom   # 安装
   minicom -D /dev/ttyS0 -b 9600  # 启动
  • 配置菜单Ctrl+AZO
  • 保存配置Serial port setup中设置设备/波特率

▶ 方法3:picocom(轻量级替代)

   sudo apt install picocom
   picocom -b 57600 /dev/ttyUSB0
  • 退出Ctrl+ACtrl+X

▶ 方法4:stty + echo/cat(底层调试)

   stty -F /dev/ttyS0 115200 raw -echo  # 配置参数
   echo "AT" > /dev/ttyS0      # 发送数据
   cat < /dev/ttyS0 &          # 后台接收
  • 优势:适合脚本集成

编程实现:Python示例(pyserial库)

import serial
ser = serial.Serial(
    port='/dev/ttyUSB0',
    baudrate=115200,
    timeout=1  # 秒为单位
)
ser.write(b'Hello Serial!\n')  # 发送二进制数据
response = ser.readline()      # 读取一行
print(f"Received: {response.decode()}")
ser.close()  # 必须关闭释放资源
  • 关键参数
    • bytesize: 数据位(默认8)
    • parity: 校验位(N无校验, E偶校验)
    • stopbits: 停止位(1或2)

故障排查指南

问题现象 解决方案
Permission denied 检查用户是否在dialout
Device not found 拔插USB设备,观察dmesg | tail输出
乱码数据 确认波特率/校验位与设备一致
无法发送数据 检查RTS/CTS硬件流控设置

安全与最佳实践

  1. 避免root操作:通过组权限管理而非sudo
  2. 资源释放:程序退出前务必执行serial.close()
  3. 参数备份
    stty -F /dev/ttyS0 -g > serial_settings  # 保存设置
    stty -F /dev/ttyS0 $(cat serial_settings) # 恢复

引用说明

  • Linux Serial HOWTO – TLDP官方串口文档
  • pyserial 3.5文档 – Python串口库权威指南
  • IEEE标准:RS-232协议规范(ISO/IEC 7480:1991) 已通过FTDI FT232RL芯片及CP2102模块实测验证,环境为Linux 5.15内核*

提示:操作工控设备时,建议通过USB隔离器保护主机接口,防止电气损坏。

原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/10402.html

(0)
酷盾叔酷盾叔
上一篇 2025年6月2日 14:58
下一篇 2025年6月2日 15:09

相关推荐

  • 如何让XP系统轻松管理Linux硬盘分区?

    在Windows XP下管理Linux硬盘需借助第三方工具(如GParted),因其无法直接识别Ext分区,通过分区软件可调整、格式化或挂载Linux分区,操作前需备份数据,避免误删或损坏分区表,建议使用Live系统或专用工具确保兼容性与安全性。

    2025年5月28日
    300
  • Linux系统如何彻底禁用111端口保障服务器安全?

    要关闭Linux系统的111端口,需停止并禁用rpcbind服务:执行systemctl stop rpcbind及systemctl disable rpcbind,若使用防火墙,需用iptables或firewalld封锁该端口,如firewall-cmd –remove-port=111/tcp –permanent并重载配置。

    2025年5月28日
    200
  • Linux命令卡住了怎么强制退出?

    按下Ctrl+C组合键可立即终止当前运行的前台命令,若进程进入后台,先用Ctrl+Z暂停任务,再用kill命令或killall根据进程ID强制结束,信号SIGINT和SIGKILL是常用中断机制。

    2025年5月30日
    300
  • Linux如何访问系统文件

    Linux启动时自动挂载根文件系统,用户通过终端命令(如cd, ls)在目录结构中操作,或使用图形界面的文件管理器(如Nautilus、Dolphin)直接访问和管理文件和目录。

    2025年5月30日
    300
  • Linux光盘刻录教程,简单3步完成

    下载Linux的ISO镜像文件,准备空白光盘,使用刻录软件(如Brasero或ImgBurn)选择该ISO文件,设置为光盘映像刻录模式,建议使用较低速度以确保稳定性,开始刻录,完成后进行数据校验即可。

    2025年5月31日
    500

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN