python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > Linux使用python调用串口<Ubuntu>

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

作者: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()

程序说明

注意事项

这个简单的示例提供了使用 Python 和 PySerial 进行串口通信的基础。

总结

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

您可能感兴趣的文章:
阅读全文