商城首页欢迎来到中国正版软件门户

您的位置:首页 >Linux使用python调用串口方式

Linux使用python调用串口方式

  发布于2026-05-25 阅读(0)

扫一扫,手机访问

想在Ubuntu系统上通过/dev/ttyUSB0这个串口设备收发数据?用Python配合pyserial库来实现,是个既简单又高效的选择。

Linux使用python调用串口<Ubuntu>方式

这套方案上手门槛不高,能应对绝大多数基础的串行通信需求。下面就来拆解一下具体的实现步骤和代码。

步骤 1: 安装 PySerial

万事开头先装库。你得确保系统里已经安装了pyserial,这是Python生态里处理串口通信的“标配”工具。

pip install pyserial

步骤 2: 编写串口收发代码

库装好了,接下来就是写代码。下面这个脚本演示了如何打开/dev/ttyUSB0串口,配置好波特率等参数,并实现数据的收发循环。

import serial
import time

def open_serial(port, baud_rate):
    """打开串口并配置基本参数"""
    try:
        ser = serial.Serial(port, baud_rate, timeout=1,
                            parity=serial.PARITY_NONE,
                            stopbits=serial.STOPBITS_ONE,
                            bytesize=serial.EIGHTBITS)
        if ser.is_open:
            print(f"Serial port {port} opened successfully")
        return ser
    except Exception as e:
        print(f"Failed to open serial port: {e}")
        return None

def read_from_serial(ser):
    """从串口读取数据"""
    try:
        data = ser.readline()  # 读取一行数据
        if data:
            print(f"Received: {data.decode().strip()}")
    except Exception as e:
        print(f"Failed to read data: {e}")

def write_to_serial(ser, data):
    """向串口发送数据"""
    try:
        ser.write(data.encode())
        print(f"Sent: {data}")
    except Exception as e:
        print(f"Failed to send data: {e}")

def main():
    port = "/dev/ttyUSB0"
    baud_rate = 9600

    # 打开串口
    ser = open_serial(port, baud_rate)
    if ser and ser.is_open:
        try:
            # 循环接收和发送数据
            while True:
                read_from_serial(ser)
                time.sleep(1)
                write_to_serial(ser, "Hello from Python!")
                time.sleep(1)
        finally:
            ser.close()
            print("Serial port closed")

if __name__ == "__main__":
    main()

程序说明

  • 打开串口: open_serial函数负责连接指定串口,并完成波特率等关键参数的配置。
  • 读取数据: read_from_serial函数从串口读取一行数据,解码后打印出来。
  • 发送数据: write_to_serial函数则负责将字符串编码后发送到串口。
  • 主循环: main函数里的循环展示了如何持续地进行读取和发送操作。

注意事项

  • 首先,得确认你有权限访问/dev/ttyUSB0这个设备文件。如果遇到权限错误,要么用sudo提权运行脚本,要么把你的用户加到dialout用户组里。
  • 其次,波特率、校验位这些串口参数,务必和你通信的另一端设备设置保持一致,否则数据就是乱码。

这个例子虽然简单,但已经搭建起了使用Python和PySerial进行串口通信的基本框架。

总结

总的来说,在Linux环境下用Python操作串口,pyserial库提供了清晰、稳定的接口。从安装到编写收发循环,整个过程逻辑清晰,是入门嵌入式通信或设备调试的一个不错起点。

本文转载于:https://www.jb51.net/python/364416zmi.htm 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注