泰山派vscode串口通信代码实现

本文介绍了如何使用Python的pyserial和python-periphery库进行UART通信,包括安装步骤,配置串口参数,发送和接收数据,以及数据的编码处理。重点展示了两种库在Linux环境下的串口操作实例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

方式一:使用pyserial库

pyserial 库封装了对串口资源的访问方法,该库兼容多种平台对串口资源使用, 有许多平台特性相关的方法

1. 安装pyserial

# 在板卡使用如下命令安装
sudo pip3 install pyserial

2. 使用pyserial 

""" pyserial uart 测试 """
import serial

# 打开uart3,设置串口波特率为115200,数据位为8,无校验位,停止位为1,不使用流控制,以非阻塞模式打开串口,等待时间为3s
with serial.Serial(
    "/dev/ttyS3",
    baudrate=115200,
    bytesize=serial.EIGHTBITS,
    stopbits=serial.STOPBITS_ONE,
    parity=serial.PARITY_NONE,
    timeout=3,
) as uart3:
    # 使用申请的串口发送字节流数据 "Hello World!\n"
    uart3.write(b"Hello World!\n")

    # 以非阻塞的方式打开的串口,在读取串口接收的数据时,该函数返回条件二者满足其一,一、读取到128个字节,二、读取时间超过1秒
    buf = uart3.read(128)

    # 注:Python读取出来的数据类型为:bytes
    # 打印原始数据
    print("原始数据:\n", buf)
    # 转码为gbk字符串,可以显示中文
    data_strings = buf.decode("gbk")
    # 打印读取的数据量及数据内容
    print("读取到 {:d} 个字节 , 以字符串形式打印:\n {:s}".format(len(buf), data_strings))

方式二:使用python-periphery

python-periphery 库支持的UART功能是基于Linux的UART系统实现的,所以要想利用该库使用到UART的功能, 需要板卡提供支持。像泰山派,就可以完美使用 python-periphery 库UART通讯功能。

1. 安装 python-periphery

# 在板卡使用如下命令安装
sudo pip3 install python-periphery

2. periphery使用UART功能 

""" python-periphery uart 测试 """
from periphery import Serial

try:
    # 申请串口资源/dev/ttyS3,设置串口波特率为115200,数据位为8,无校验位,停止位为1,不使用流控制
    serial = Serial(
        "/dev/ttyS3",
        baudrate=115200,
        databits=8,
        parity="none",
        stopbits=1,
        xonxoff=False,
        rtscts=False,
    )
    # 使用申请的串口发送字节流数据 "python-periphery!\n"
    serial.write(b"python-periphery!\n")

    # 读取串口接收的数据,该函数返回条件二者满足其一,一、读取到128个字节,二、读取时间超过1秒
    buf = serial.read(128, 1)

    # 注:Python读取出来的数据类型为:bytes
    # 打印原始数据
    print("接收的原始数据:\n", buf)

    # 转码为gbk字符串,可以显示中文
    data_strings = buf.decode("gbk")

    # 打印读取的数据量及数据内容
    print("读取到 {:d} 个字节 , 以字符串形式打印:\n {:s}".format(len(buf), data_strings))
finally:
    # 释放申请的串口资源
    serial.close()

代码说明:

  • 第6行,申请UART资源,占用uart3,配置对应的工作模式
  • 第16行,使用申请到的串口资源发送数据
  • 第19行,使用申请到的串口资源接收数据,接收方式为阻塞接收
  • 第23~29行,将读取到的数据打印出来
  • 第32行,释放UART资源,释放uart3

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

除不掉的灰色

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值