双河市网站建设_网站建设公司_GitHub_seo优化
2025/12/17 12:51:23 网站建设 项目流程

mainWindows.c

构造函数

/*---------- 1. 串口对象初始化 ----------*/ serialPort = new QSerialPort(this); // 创建串口对象,指定父对象自动回收 /* 连接串口的“readyRead”信号到我们的自定义槽函数 */ connect(serialPort, &QSerialPort::readyRead,this,&MainWindow::manual_serialPortReadyRead); /*---------- 2. 扫描当前系统可用串口 ----------*/ ui->portnumber->clear(); // 先清空下拉框 foreach (const QSerialPortInfo &info, QSerialPortInfo::availablePorts()) ui->portnumber->addItem(info.portName()); // 把端口号填到下拉框

新建函数

/*===================== 串口数据到达 =====================*/ void MainWindow::manual_serialPortReadyRead() { /* 1. 一次性读取内核缓冲区里当前可用的所有数据 */ QByteArray recBuf = serialPort->readAll(); /* 2. 累加接收字节数 */ recvNum += recBuf.size(); /* 3. 准备用于界面显示的字符串 */ QString str_rev; /* 4. 把原始字节 → 空格分隔的十六进制大写字符串 */ QString hexStr = recBuf.toHex(' ').toUpper(); // 例:"48 65 6C 6C 6F" str_rev += "->" + hexStr; /* 5. 行尾加换行,保证下次数据另起一行 */ str_rev += "\r\n"; // 插入文本并滚动到底部 ui->sendandreceivewindow->moveCursor(QTextCursor::End); ui->sendandreceivewindow->insertPlainText(str_rev); ui->sendandreceivewindow->moveCursor(QTextCursor::End); }

mainwindow.h

public: QSerialPort *serialPort; // 串口对象指针(生命周期与 MainWindow 一致) private: bool m_portOpened = false; // 记录串口是否已经打开 /*---- 收发计数 ----*/ long sendNum = 0; // 已发送字节数 long recvNum = 0; // 已接收字节数 void manual_serialPortReadyRead();

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询