Python与串口通讯

Python与串口通讯

Python与串口通讯

1. 引言

串口通讯是一种常见的用于设备之间传输数据的方式。在许多应用中,我们需要通过串口与外部设备进行通讯,例如与传感器、单片机等交互。Python作为一种简单易用的脚本语言,提供了许多库和工具可以帮助我们在程序中实现串口通讯。本文将介绍如何使用Python进行串口通讯,并给出5个示例代码及运行结果。

2. Python中的串口通讯库

Python中有多个库用于串口通讯,其中较为常用的有serial库和pyserial库。这两个库都支持跨平台,并提供了丰富的API用于控制串口设备。本文主要介绍pyserial库的使用,因为它在大多数情况下更受欢迎。

2.1 安装pyserial库

在使用pyserial库前,需要先安装该库。可以通过pip命令来进行安装。打开终端或命令提示符,输入以下命令:

pip install pyserial

2.2 pyserial库的基本用法

pyserial库提供了Serial类来实现串口通讯。下面是Serial类的一些常用方法:

  • open():打开串口。
  • write(data):向串口写入数据。
  • read(size):从串口读取指定大小的数据。
  • close():关闭串口。

在使用pyserial库前,需要首先导入该库:

import serial

3. 示例代码及运行结果

下面给出5个示例代码及运行结果,分别演示了使用Python与串口进行数据交互的不同场景。

3.1 示例1:发送数据到串口

下面的代码演示了如何向串口发送数据:

import serial

ser = serial.Serial('/dev/ttyUSB0', 9600)  # 打开串口

data = 'Hello, serial!'  # 待发送的数据
ser.write(data.encode())  # 发送数据

ser.close()  # 关闭串口

运行结果:无报错信息。

3.2 示例2:从串口接收数据

下面的代码演示了如何从串口接收数据并打印输出:

import serial

ser = serial.Serial('/dev/ttyUSB0', 9600)  # 打开串口

data = ser.read(10)  # 从串口读取10个字节的数据
print('Received:', data.decode())  # 打印接收到的数据

ser.close()  # 关闭串口

运行结果:无报错信息。如果串口中有数据输入,将被读取并打印输出。

3.3 示例3:连续读取串口数据

下面的代码演示了如何实现连续读取串口数据,并将数据保存到文件中:

import serial

ser = serial.Serial('/dev/ttyUSB0', 9600)  # 打开串口

file = open('serial_data.txt', 'w')  # 打开文件

while True:
    data = ser.readline()  # 读取一行数据
    file.write(data.decode())  # 将数据写入文件
    file.flush()  # 刷新文件缓冲区

file.close()  # 关闭文件
ser.close()  # 关闭串口

运行结果:无报错信息。通过该代码可以实现将串口接收到的数据连续写入到文件serial_data.txt中。

3.4 示例4:设置串口参数

下面的代码演示了如何设置串口的通信参数,例如波特率、数据位、停止位、校验位等:

import serial

ser = serial.Serial('/dev/ttyUSB0', 9600, timeout=1)  # 打开串口,设置超时时间为1秒
ser.baudrate = 115200  # 设置波特率为115200
ser.bytesize = serial.EIGHTBITS  # 设置数据位为8位
ser.stopbits = serial.STOPBITS_ONE  # 设置停止位为1位
ser.parity = serial.PARITY_NONE  # 设置校验位为无校验

ser.close()  # 关闭串口

运行结果:无报错信息。通过该代码可以设置串口的通信参数。

3.5 示例5:获取可用串口列表

下面的代码演示了如何获取可用串口列表:

import serial.tools.list_ports

ports = serial.tools.list_ports.comports()  # 获取可用串口列表
for port in ports:
    print(port.device)  # 打印串口名称

运行结果:无报错信息。通过该代码可以获取当前系统中可用的串口列表,并打印输出串口名称。

4. 总结

本文介绍了如何使用Python进行串口通讯,并给出了5个示例代码及运行结果。通过这些示例代码,我们了解了Python如何向串口发送数据、从串口接收数据,以及如何设置串口参数和获取串口列表。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程