Python 串口通信的接收与发送
什么是串口通信
串口通信是指通过串行通信接口进行数据传输的一种通信方式。在计算机领域中,串口通信被广泛应用于设备间的数据传输,如传感器、打印机、数码相机等与计算机之间的连接。
串口通信的接收端和发送端需要采用相同的通讯协议,如波特率、数据位、校验位等要一致,才能确保数据的稳定传输。
Python 中的串口通信
Python 提供了多种库用于串口通信,其中最常用的就是 pySerial 库。pySerial 是一个专门用于串口通信的 Python 库,通过它可以轻松实现串口通信的功能。
安装 pySerial 库
如果你还没有安装 pySerial 库,可以通过以下命令使用 pip 工具进行安装:
pip install pyserial
打开串口设备
在 Python 中通过 pySerial 库打开串口设备非常简单,以下是一个简单的代码示例:
import serial
# 创建串口对象
ser = serial.Serial('COM1', 9600, timeout=1)
# 打开串口
ser.open()
# 打印串口信息
print(ser)
在以上代码中,我们通过 serial.Serial()
方法创建了一个串口对象,传入参数为串口设备名称、波特率和超时时间。然后调用 ser.open()
方法打开串口设备,最后打印串口信息。你需要根据实际情况修改串口设备名称和波特率。
串口数据的发送
使用 pySerial 库向串口设备发送数据非常简单,以下是一个简单的代码示例:
import serial
# 创建串口对象
ser = serial.Serial('COM1', 9600, timeout=1)
# 打开串口
ser.open()
# 发送数据
ser.write(b'Hello, World!')
# 关闭串口
ser.close()
在以上代码中,我们通过 ser.write()
方法向串口设备发送了一串数据。需要注意的是,在 pySerial 中,所有发送的数据都要以字节的形式进行发送,因此我们在发送数据之前使用了 b
标记将字符串转换为字节形式。
串口数据的接收
接收串口数据通常是通过循环读取串口缓冲区中的数据来实现的,以下是一个简单的代码示例:
import serial
# 创建串口对象
ser = serial.Serial('COM1', 9600, timeout=1)
# 打开串口
ser.open()
# 循环接收数据
while True:
data = ser.readline()
if data:
print(data)
# 关闭串口
ser.close()
在以上代码中,我们使用 ser.readline()
方法从串口设备中读取一行数据,并通过一个无限循环持续接收数据并打印到控制台。你可以根据实际需求对接收到的数据进行处理。
示例代码运行结果
在以上示例代码中,我们演示了如何使用 pySerial 库实现串口通信中的数据发送和接收功能。你可以根据实际需求对这些代码进行修改和扩展,以满足具体的应用场景。