📜  Python 与串口通信 - Python (1)

📅  最后修改于: 2023-12-03 15:04:13.963000             🧑  作者: Mango

Python 与串口通信

在现代工业控制、机器人、嵌入式系统中,使用串口通信是非常常见的。Python 作为一门功能强大的高级编程语言,自然也可以通过多种途径与串口通信。接下来将介绍怎样使用 Python 进行串口通信。

串口通信介绍

所谓串口通信,其实就是利用串行通信的方式进行数据的传输。串口通信一般分为两个部分,一个是硬件,一个是软件。硬件部分需要串口转 USB 等设备,而软件部分需要使用对应的库来进行编程操作。

典型的串口通信有如下的一些参数:

  • 波特率,表示每秒钟发送的比特数
  • 数据位,表示每个字符占用的比特数
  • 校验位,用于检查传输数据的错误率
  • 停止位,表示一个字符传输结束后,停留多长时间
PySerial 库介绍

PySerial 是 Python 中常用的串口通信库。该库支持不同的操作系统(如 Windows、Linux、Mac),支持多个串口设备(如 USB 转串口、雷达、传感器等)。

在使用 PySerial 库前,需要先安装它。可以使用 pip 进行安装:

pip install pyserial
PySerial 库基本 API

PySerial 库中最常用的类是 serial.Serial。可以使用该类进行端口设置、打开关闭端口、读写数据等操作。

端口设置及打开

下面的代码展示了如何设置及打开端口:

import serial

ser = serial.Serial()
ser.port = "/dev/ttyUSB0"
ser.baudrate = 9600
ser.open()

其中:

  • ser.port :设置端口名字,如 "/dev/ttyUSB0" 或 "COM3" 等
  • ser.baudrate :设置波特率,如 9600、115200 等
  • ser.open() :打开串口
读写数据

下面的代码展示了如何将数据写入串口:

ser.write(b"hello")

其中,ser.write() 函数需要传入 bytes 类型的数据,如 b"hello"。

下面的代码展示了如何从串口读取数据:

data = ser.read(size=200)

其中,ser.read() 函数需要传入传输数据的字节数,如上述的 size=200。

关闭端口

下面的代码展示了如何关闭端口:

ser.close()
示例代码

利用 PySerial 库可以实现许多功能。下面是一个简单的例子,展示了如何不断向串口写入数据,并从串口读取数据输出。

import serial

ser = serial.Serial("/dev/ttyUSB0", 9600)
while True:
    ser.write(b"hello\n")
    data = ser.readline()
    print(data.decode().rstrip())
ser.close()
总结

本文介绍了 Python 如何使用 PySerial 库进行串口通信,并简单展示了如何设置、打开、读写、关闭串口。在实际工程中,还需要结合串口设备的具体参数及协议进行操作。