mySerialPort.rar Qt 串口通信(QSerialPort)16进制收发实例代码。使用静态函数生成QSerialPortInfo对象列表。列表中的每个QSerialPortInfo对象表示一个串行端口,可以查询端口名称、系统位置、描述和制造商。QSerialPortInfo类还可以用作QSerialPort类的setPort()方法的输入参数。 首先在项目文件里面添加一句 2、打开串口 connect(m_serial, &QSerialPort::errorOccurred, this, &MainWindow::handleError); //连接信号槽 当下位机发送数据QSerialPortInfo 会发送个 readyRead 信号,我们定义个//槽void readData ()解析数据 connect(m_serial, &QSerialPort::readyRead, this, &MainWindow::readData); 3、发送数据,转换输入,并16进制发送 4、接收数据并16进制显示 备注:实战示例,解疑答惑。 –不间端地思考,实时地批判你的工作!
Qt 串口通信(QSerialPort)16进制收发实例代码
QT += serialport
m_ui->serialPortInfoListBox->clear(); QString description; QString manufacturer; QString serialNumber; const auto infos = QSerialPortInfo::availablePorts(); for (const QSerialPortInfo &info : infos) { QStringList list; description = info.description(); manufacturer = info.manufacturer(); serialNumber = info.serialNumber(); list << info.portName() << (!description.isEmpty() ? description : blankString) << (!manufacturer.isEmpty() ? manufacturer : blankString) << (!serialNumber.isEmpty() ? serialNumber : blankString) << info.systemLocation() << (info.vendorIdentifier() ? QString::number(info.vendorIdentifier(), 16) : blankString) << (info.productIdentifier() ? QString::number(info.productIdentifier(), 16) : blankString); m_ui->serialPortInfoListBox->addItem(list.first(), list); } m_ui->serialPortInfoListBox->addItem(tr("Custom"));
const SettingsDialog::Settings p = m_settings->settings(); m_serial->setPortName(p.name); m_serial->setBaudRate(p.baudRate); m_serial->setDataBits(p.dataBits); m_serial->setParity(p.parity); m_serial->setStopBits(p.stopBits); m_serial->setFlowControl(p.flowControl); if (m_serial->open(QIODevice::ReadWrite)) { showStatusMessage(tr("Connected to %1 : %2, %3, %4, %5, %6") .arg(p.name).arg(p.stringBaudRate).arg(p.stringDataBits) .arg(p.stringParity).arg(p.stringStopBits).arg(p.stringFlowControl)); } else { QMessageBox::critical(this, tr("Error"), m_serial->errorString()); showStatusMessage(tr("Open error")); }
QString info= ui->textEditsend->toPlainText(); if (info.contains(" ")) { info.replace(QString(" "),QString(""));//把空格去掉 } qDebug()<<"Write to serial: "<<info; //转换成16进制发送 QByteArray sendBuf = QByteArray::fromHex(info.toLatin1()); m_serial->write(sendBuf);
void MainWindow::readData() { const QByteArray info = m_serial->readAll(); QByteArray hexData = info.toHex(); QString string; string.prepend(hexData);// QByteArray转QString方法2 qDebug()<<"receive info:"<<info; ui->textEditrec->append(string); }
5、实际界面显示
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算