用Python读取串口数据

介绍

串口是计算机与外部设备之间进行通信的一种常见方式。Python是一种流行的编程语言,可以使用它读取和处理串口数据。本文将介绍如何使用Python读取串口数据,并提供详细的代码示例。

准备工作

在使用Python读取串口数据之前,需要安装pySerial库。可以通过以下命令使用pip安装pySerial:

pip install pyserial

代码示例

下面是一个简单的代码示例,演示了如何使用pySerial库在Windows系统上读取串口数据:

import serial

# 打开串口
ser = serial.Serial('COM1', 9600)

# 读取数据
while True:
    data = ser.readline()
    print(data.decode())

# 关闭串口
ser.close()

上述代码首先导入了serial模块,然后通过serial.Serial函数打开了COM1串口,波特率设置为9600。接下来使用一个无限循环来读取数据,ser.readline()函数可以读取一行数据,然后使用decode()方法将字节转换为字符串并打印出来。最后通过ser.close()关闭串口。

运行代码

将上述代码保存为serial_read.py文件,然后通过命令行运行:

python serial_read.py

如果串口连接正常,将会不断打印接收到的数据。

支持的操作系统

pySerial库支持Windows、Linux和macOS等操作系统。在Linux和macOS上,串口名称可能是/dev/ttyUSB0/dev/ttyACM0等,具体取决于设备和驱动程序。

高级用法

pySerial库提供了丰富的功能来处理串口数据,例如设置波特率、校验位、数据位和停止位等。下面是一个示例,演示了如何通过pySerial库设置和读取串口数据:

import serial

# 打开串口
ser = serial.Serial('COM1', 9600)
ser.baudrate = 115200
ser.bytesize = serial.EIGHTBITS
ser.parity = serial.PARITY_NONE
ser.stopbits = serial.STOPBITS_ONE

# 读取数据
while True:
    data = ser.readline()
    print(data.decode())

# 关闭串口
ser.close()

在上述示例中,首先打开COM1串口,并通过属性设置了波特率、数据位、校验位和停止位。然后使用ser.readline()函数读取数据,并将其打印出来。

流程图

下面是使用mermaid语法绘制的流程图,展示了使用Python读取串口数据的流程:

flowchart TD
    A[打开串口] --> B[读取数据]
    B --> C{是否有数据}
    C -- 有 --> D[处理数据]
    C -- 无 --> B
    D --> E[关闭串口]

总结

本文介绍了如何使用Python读取串口数据,并提供了详细的代码示例。通过pySerial库,可以方便地在不同操作系统上读取和处理串口数据。希望本文能够帮助你开始在Python中使用串口通信。

参考资料

  • pySerial官方文档: