Linux串口如何配置权限与通信?

识别串口设备

  1. 物理连接
    将串口设备(如USB转TTL模块)插入电脑,系统通常自动识别。
  2. 查看设备节点
    终端执行:

    dmesg | grep tty  # 查看内核日志
    ls /dev/tty*      # 列出所有串口设备

    常见设备名:

    • /dev/ttyS0:主板原生串口
    • /dev/ttyUSB0:USB转串口设备
    • /dev/ttyACM0:CDC-ACM设备(如Arduino)

配置访问权限

普通用户默认无串口访问权限,需以下操作:

  1. 临时添加权限
    sudo chmod 666 /dev/ttyUSB0  # 开放读写权限
  2. 永久解决方案(推荐)
    将用户加入dialout组:

    sudo usermod -aG dialout $USER  # $USER替换为当前用户名
    sudo reboot  # 重启生效

安装串口通信工具

常用工具安装命令:

sudo apt install minicom screen picocom  # Debian/Ubuntu
sudo yum install minicom screen picocom  # CentOS/RHEL

配置串口参数

串口通信需统一参数:波特率、数据位、停止位、校验位、流控
常用配置:115200 8N1(波特率115200,8数据位,无校验,1停止位)。

工具配置示例

  1. 使用minicom

    minicom -s  # 进入配置模式
    • 选择 “Serial port setup”
    • 设置设备(如/dev/ttyUSB0)和参数(按E键修改波特率)
    • 保存为默认配置(Save setup as dfl)
  2. 使用screen(快速连接)

    screen /dev/ttyUSB0 115200  # 连接后按Ctrl+A, 再按K退出
  3. 使用picocom(轻量级)

    picocom -b 115200 /dev/ttyUSB0  # 按Ctrl+A, 再按Ctrl+X退出

发送与接收数据

  • 发送文件
     cat file.txt > /dev/ttyUSB0
  • 接收数据保存
     cat /dev/ttyUSB0 > received.log  # Ctrl+C终止

编程访问串口(Python示例)

使用pyserial库:

pip install pyserial

示例代码:

import serial
ser = serial.Serial(
    port='/dev/ttyUSB0',
    baudrate=115200,
    bytesize=serial.EIGHTBITS,
    parity=serial.PARITY_NONE,
    stopbits=serial.STOPBITS_ONE
)
ser.write(b'Hello Serial!\n')  # 发送数据
response = ser.readline()     # 读取一行
print(response.decode('utf-8'))
ser.close()

常见问题解决

  1. 权限不足
    确认用户是否在dialout组:groups $USER
  2. 无数据接收
    • 检查接线(RX/TX是否交叉连接)
    • 确认设备波特率匹配(使用stty -F /dev/ttyUSB0查看当前配置)
  3. 设备未识别
    • 执行lsusb查看USB设备
    • 检查驱动:dmesg | grep usb

安全注意事项

  1. 避免在root下直接操作串口,优先使用用户组权限。
  2. 关键设备操作前断开电源,防止误操作损坏硬件。
  3. 工业环境使用隔离转换器,防止电压损坏电脑接口。

进阶学习

  • 调试工具
    stty -F /dev/ttyUSB0 查看/修改参数
    setserial -g /dev/ttyS* 查看原生串口信息
  • 内核文档
    访问 /usr/src/linux/Documentation/serial/(需安装内核头文件)

引用说明

  • Linux Man Pages:man screen, man minicom
  • PySerial官方文档:pyserial.readthedocs.io
  • Linux内核串口文档(Kernel.org)
  • 遵循IEEE 1284串口通信标准

通过以上步骤,您可高效管理Linux串口设备,实际应用需结合硬件规格调整参数,复杂场景建议结合逻辑分析仪验证数据。

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

(0)
酷番叔酷番叔
上一篇 5天前
下一篇 5天前

相关推荐

  • Linux双屏显示异常?

    准备工作硬件检查确认显卡支持多屏输出(HDMI/DP/VGA接口)使用lspci | grep VGA 查看显卡型号安装专有驱动(如NVIDIA用户需安装nvidia-driver)连接检测xrandr -q # 查看已识别接口(如HDMI-1, DP-1)未检测到第二屏幕时,检查线缆连接或尝试重启显示管理器……

    2天前
    500
  • Linux配置JDK环境变量?一步搞定!

    配置前的准备工作确认系统架构uname -m # 输出x86_64表示64位,i686表示32位下载合适JDK版本推荐从Oracle官网或OpenJDK下载对应版本的tar.gz包(如jdk-17_linux-x64_bin.tar.gz)解压JDK到目标目录sudo tar -zxvf jdk-17_linu……

    2025年7月12日
    800
  • Linux服务器如何安全启动?

    开启服务器的核心步骤确认服务已安装在启动前,确保所需服务器软件已安装:Web服务器(如Nginx/Apache) nginx -v # 检查Nginx版本apache2 -v # 检查Apache版本数据库服务器(如MySQL/PostgreSQL) mysql –versionpostgres –vers……

    2025年6月23日
    1000
  • Linux如何运行微信?

    首选方案:Deepin-Wine环境(推荐)原理:利用深度(Deepin)团队优化的Wine兼容层运行Windows版微信优势:兼容性好、支持文件传输/音视频通话步骤:安装Deepin-Wine环境Ubuntu/Debian系用户执行:wget -O- https://deepin-wine.i-m.dev/s……

    2025年7月1日
    1300
  • 操作前必看关键提示?

    在Linux系统中,防火墙是保护系统安全的关键组件,它通过控制网络流量来阻止未授权访问,除非在测试环境、内网隔离或特定调试需求下,否则强烈不建议永久关闭防火墙,以下提供详细操作指南,涵盖主流发行版(CentOS/RHEL、Fedora、Ubuntu/Debian),并强调安全风险,风险警示:关闭防火墙将使系统暴……

    2025年7月7日
    1100

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信