Python 串口通讯

Python 串口通讯

Python 串口通讯

1. 介绍

串口通讯是计算机与外部设备之间进行数据交换的一种常见的方式。Python提供了丰富的库和模块来实现串口通讯的功能。本文将详细介绍Python中常用的串口通讯库,并给出一些示例代码和运行结果。

2. PySerial库

PySerial是Python中常用的串口通讯库,它能够在多个平台上与串口通信设备进行通信,包括Windows、Linux和Mac OS等。

2.1 安装PySerial库

要使用PySerial库,首先需要安装它。可以使用pip命令来安装PySerial,命令如下:

pip install pyserial

2.2 打开和关闭串口

使用PySerial库来打开串口非常简单。首先,我们需要导入serial模块,然后使用serial.Serial()方法来创建一个串口对象。下面是打开串口的示例代码:

import serial

# 创建串口对象
ser = serial.Serial('COM1', 9600)

上面的代码中,COM1是串口的名称,9600是波特率。

要关闭串口,可以使用ser.close()方法,示例代码如下:

import serial

# 创建串口对象
ser = serial.Serial('COM1', 9600)

# 关闭串口
ser.close()

2.3 读取和写入数据

使用PySerial库可以轻松实现和串口设备的数据交换。要从串口中读取数据,可以使用ser.read()方法。示例代码如下:

import serial

# 创建串口对象
ser = serial.Serial('COM1', 9600)

# 读取一个字节的数据
data = ser.read(1)
print('读取的数据:', data)

# 关闭串口
ser.close()

要向串口中写入数据,可以使用ser.write()方法。示例代码如下:

import serial

# 创建串口对象
ser = serial.Serial('COM1', 9600)

# 写入一个字节的数据
ser.write(b'Hello')

# 关闭串口
ser.close()

2.4 设置串口参数

在PySerial库中,可以通过设置串口的参数来满足特定需求。例如,可以设置串口的波特率、数据位、停止位和校验位等。可以使用ser.baudrateser.bytesizeser.stopbitsser.parity等属性来实现。下面是设置串口参数的示例代码:

import serial

# 创建串口对象
ser = serial.Serial('COM1')

# 设置波特率
ser.baudrate = 9600

# 设置数据位
ser.bytesize = serial.EIGHTBITS

# 设置停止位
ser.stopbits = serial.STOPBITS_ONE

# 设置校验位
ser.parity = serial.PARITY_NONE

3. 示例代码

下面给出一些具体的示例代码,演示了如何使用PySerial库实现串口通讯。

3.1 读取数据

下面的示例代码演示了如何从串口中连续读取数据,并将读取到的数据打印出来。要运行以下示例代码,需要连接一个能够发送数据的串口设备。

import serial

# 创建串口对象
ser = serial.Serial('COM1', 9600)

try:
    # 循环读取数据
    while True:
        data = ser.read()  # 读取一个字节
        print('读取的数据:', data)
except KeyboardInterrupt:
    pass

# 关闭串口
ser.close()

3.2 写入数据

下面的示例代码演示了如何向串口中连续写入数据。要运行以下示例代码,需要连接一个能够接收数据的串口设备。

import serial

# 创建串口对象
ser = serial.Serial('COM1', 9600)

try:
    # 循环写入数据
    while True:
        ser.write(b'Hello')  # 写入一个字节
except KeyboardInterrupt:
    pass

# 关闭串口
ser.close()

3.3 读取和写入数据

下面的示例代码演示了如何同时进行读取和写入数据的操作。要运行以下示例代码,需要连接两个串口设备,并将它们连在一起。

import serial

# 创建串口对象
ser1 = serial.Serial('COM1', 9600)
ser2 = serial.Serial('COM2', 9600)

try:
    # 循环进行数据交换
    while True:
        # 从ser1读取数据
        data1 = ser1.read()
        print('从COM1读取的数据:', data1)

        # 将数据写入ser2
        ser2.write(data1)

        # 从ser2读取数据
        data2 = ser2.read()
        print('从COM2读取的数据:', data2)

        # 将数据写入ser1
        ser1.write(data2)
except KeyboardInterrupt:
    pass

# 关闭串口
ser1.close()
ser2.close()

4. 总结

通过PySerial库,我们可以方便地在Python中实现串口通讯功能。本文介绍了如何使用PySerial库来打开和关闭串口、读取和写入数据以及设置串口参数。同时,给出了一些示例代码来演示具体的操作。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程