一、简介
QtSerialPort 是 PySide6 用于实现串口异步通信的核心模块,专门用于与串口设备(如单片机、传感器、蓝牙模块、串口打印机等)进行数据交互。
二、QtSerialPort 库的核心内容
QtSerialPort 库的核心功能由两个关键类提供,核心操作类 QSerialPort和辅助信息类 QSerialPortInfo,所有串口操作均围绕这两个类展开:
1. 核心操作类:QSerialPort
QSerialPort是实现串口通信的核心类,负责串口的配置、打开 / 关闭、数据读写、错误处理等核心操作,它的核心特性包括:
- 支持串口参数配置(波特率、数据位、校验位、停止位、流控)
- 提供异步读写接口(基于信号与槽,无阻塞)
- 支持串口状态检测和错误反馈
- 支持数据缓冲区操作
QSerialPort 常用属性(串口参数)
串口通信的参数必须与外设保持一致,否则无法正常通信,常用参数如下:
| 参数类型 | 示例 | 说明 |
|---|---|---|
| 波特率 | QSerialPort.Baud9600, QSerialPort.Baud115200 | 串口通信速率,最常用 9600、115200 |
| 数据位 | QSerialPort.Data8, QSerialPort.Data7 | 每帧数据的位数,最常用 8 位 |
| 校验位 | QSerialPort.NoParity, QSerialPort.EvenParity | 奇偶校验位,最常用无校验(NoParity) |
| 停止位 | QSerialPort.OneStop, QSerialPort.TwoStop | 数据帧结束标志,最常用 1 位 |
| 流控 | QSerialPort.NoFlowControl, QSerialPort.HardwareControl | 流量控制,最常用无流控 |
QSerialPort 常用信号
由于 PySide6 采用信号与槽机制,QSerialPort 的异步操作通过以下核心信号通知上层逻辑:
readyRead():当串口接收缓冲区有新数据到达时触发(读取数据的核心信号)errorOccurred(error):当串口发生错误时触发(如端口不存在、权限不足)bytesWritten(bytes):当数据成功写入串口发送缓冲区时触发

