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

 更新时间:2026年05月23日 10:56:37   作者:IOT-Power  
本文介绍在Ubuntu上使用Python和pyserial库进行串口通信的方法,涵盖安装库、编写收发代码及注意事项,适合初学者入门

要在 Ubuntu 上使用 /dev/ttyUSB0 设备编写一个简单的串口收发程序,你可以使用 Python,结合 pyserial 库来实现。

这种方法相对简单,适用于各种串行通信任务。

以下是如何在 Python 中编写串口收发程序的步骤及代码示例:

步骤 1: 安装 PySerial

首先确保安装了 pyserial,这是一个流行的 Python 库,用于处理串行通信:

pip install pyserial

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

以下是一个简单的 Python 脚本,用于打开 /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 进行串口通信的基础。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Python3视频转字符动画的实例代码

    Python3视频转字符动画的实例代码

    这篇文章主要介绍了Python3视频转字符动画的实例代码,代码简单易懂,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-08-08
  • tensorflow之读取jpg图像长和宽实例

    tensorflow之读取jpg图像长和宽实例

    这篇文章主要介绍了tensorflow之读取jpg图像长和宽实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-06-06
  • Python venv虚拟环境跨设备迁移的实现

    Python venv虚拟环境跨设备迁移的实现

    本文主要介绍了Python venv虚拟环境跨设备迁移的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-06-06
  • 解决同一目录下python import报错问题

    解决同一目录下python import报错问题

    这篇文章主要介绍了解决同一目录下python import报错问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-12-12
  • 通过Python实现在Word中添加和删除书签的操作

    通过Python实现在Word中添加和删除书签的操作

    在Word中,书签功能是一个非常实用的工具,它允许用户快速定位到文档中的特定位置,无论是进行文档审阅、编辑还是查找特定信息,书签都能提供极大的便利,下面将详细介绍如何通过Python在Word文档中添加和删除书签,需要的朋友可以参考下
    2024-09-09
  • Python入门之三角函数sin()函数实例详解

    Python入门之三角函数sin()函数实例详解

    这篇文章主要介绍了Python入门之三角函数sin()函数实例详解,分享了相关实例,具有一定参考价值,需要的朋友可以了解下。
    2017-11-11
  • python基础之while循环、for循环详解及举例

    python基础之while循环、for循环详解及举例

    所谓循环结构就是程序中控制某条或某些指令重复执行的结构,下面这篇文章主要给大家介绍了关于python基础之while循环、for循环的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-04-04
  • Tensorflow简单验证码识别应用

    Tensorflow简单验证码识别应用

    这篇文章主要为大家详细介绍了Tensorflow简单验证码识别应用的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-05-05
  • Python数据分析numpy数组的3种创建方式

    Python数据分析numpy数组的3种创建方式

    这篇文章主要介绍了Python数据分析numpy数组的3种创建方式,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的朋友可以参考一下
    2022-07-07
  • Python面向对象之类和对象

    Python面向对象之类和对象

    这篇文章主要为大家介绍了Python类和对象,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2021-12-12

最新评论