window端QT开发之串口数据接收处理

写在前面

串口QSerialPort,本篇先讲讲串口的数据接收
.pro中添加QT += serialport

头文件

#include <QSerialPort>
#include <QSerialPortInfo>
#include <QIODevice>

定义全局变量

static QSerialPort * m_serialport=new QSerialPort();
static QByteArray     uartRecvBuffer;

接收回调

绑定信号槽,收到数据后先不处理,启动定时器等待超时再处理。定时器开启见

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您可以在接收数据时使用 `QTextEdit` 控件的 `insertPlainText()` 方法来显示数据,这样就不会自动换行了。示例代码如下: ```python import sys from PyQt5.QtWidgets import QApplication, QMainWindow, QTextEdit from PyQt5.QtSerialPort import QSerialPort, QSerialPortInfo class MainWindow(QMainWindow): def __init__(self): super().__init__() # 创建串口对象 self.serial = QSerialPort(self) self.serial.readyRead.connect(self.on_serial_ready_read) # 创建文本编辑框 self.text_edit = QTextEdit(self) self.setCentralWidget(self.text_edit) # 打开串口 port_name = "COM1" # 串口名 baud_rate = QSerialPort.Baud9600 # 波特率 data_bits = QSerialPort.Data8 # 数据位 parity = QSerialPort.NoParity # 校验位 stop_bits = QSerialPort.OneStop # 停止位 self.serial.setPortName(port_name) self.serial.setBaudRate(baud_rate) self.serial.setDataBits(data_bits) self.serial.setParity(parity) self.serial.setStopBits(stop_bits) if self.serial.open(QSerialPort.ReadWrite): print(f"串口 {port_name} 已打开") else: print(f"串口 {port_name} 打开失败") def on_serial_ready_read(self): data = self.serial.readAll() self.text_edit.insertPlainText(data) if __name__ == '__main__': app = QApplication(sys.argv) window = MainWindow() window.show() sys.exit(app.exec_()) ``` 在上面的代码中,我们使用了 `QTextEdit` 控件的 `insertPlainText()` 方法来显示接收到的数据。这个方法不会自动换行,所以数据会在同一行上连续显示。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值