Linux使用python调用串口<Ubuntu>

要在 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 进行串口通信的基础。

相关推荐

  1. Linux使用python调用串口Ubuntu

    2024-07-15 02:44:01       20 阅读
  2. Linux串口设备的使用ubuntu

    2024-07-15 02:44:01       21 阅读
  3. Ubuntu串口调试单片机

    2024-07-15 02:44:01       25 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-15 02:44:01       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-15 02:44:01       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-15 02:44:01       58 阅读
  4. Python语言-面向对象

    2024-07-15 02:44:01       69 阅读

热门阅读

  1. 求职笔记day3

    2024-07-15 02:44:01       21 阅读
  2. WSL2 的安装与运行 Linux 系统

    2024-07-15 02:44:01       19 阅读
  3. Android C++系列:Linux网络(五)常见术语

    2024-07-15 02:44:01       20 阅读
  4. DP讨论——适配器、桥接模式等通用理解

    2024-07-15 02:44:01       17 阅读
  5. 昇思第19天

    2024-07-15 02:44:01       21 阅读
  6. MSYS2快速安装和使用

    2024-07-15 02:44:01       22 阅读
  7. 分布式服务基于Zookeeper的分布式锁的实现

    2024-07-15 02:44:01       19 阅读
  8. C++ 入门10:继承和派生类

    2024-07-15 02:44:01       16 阅读