下面是一个用 Qt 编写的串口通信示例代码,包括打开串口、关闭串口、搜索串口和串口收发数据的功能:\n\ncpp\n#include <QCoreApplication>\n#include <QtSerialPort/QSerialPort>\n#include <QDebug>\n\nQSerialPort serial;\n\n// 打开串口\nbool openSerialPort(const QString& portName)\n{\n serial.setPortName(portName);\n serial.setBaudRate(QSerialPort::Baud9600);\n serial.setDataBits(QSerialPort::Data8);\n serial.setParity(QSerialPort::NoParity);\n serial.setStopBits(QSerialPort::OneStop);\n\n if (serial.open(QIODevice::ReadWrite))\n {\n qDebug() << "Serial port opened: " << portName;\n return true;\n }\n else\n {\n qDebug() << "Failed to open serial port: " << portName;\n return false;\n }\n}\n\n// 关闭串口\nvoid closeSerialPort()\n{\n if (serial.isOpen())\n {\n serial.close();\n qDebug() << "Serial port closed";\n }\n}\n\n// 搜索串口\nQStringList getAvailableSerialPorts()\n{\n QStringList ports;\n foreach (const QSerialPortInfo &info, QSerialPortInfo::availablePorts())\n {\n ports << info.portName();\n }\n return ports;\n}\n\n// 串口收发数据\nvoid sendData(const QByteArray& data)\n{\n if (serial.isOpen())\n {\n serial.write(data);\n qDebug() << "Data sent: " << data;\n }\n else\n {\n qDebug() << "Serial port is not opened";\n }\n}\n\nvoid readData()\n{\n QByteArray data = serial.readAll();\n qDebug() << "Data received: " << data;\n}\n\nint main(int argc, char *argv[])\n{\n QCoreApplication a(argc, argv);\n\n // 搜索串口\n QStringList ports = getAvailableSerialPorts();\n foreach (const QString &port, ports)\n {\n qDebug() << "Serial port found: " << port;\n }\n\n // 打开串口(示例中使用第一个搜索到的串口)\n if (!ports.isEmpty())\n {\n QString portName = ports.first();\n if (openSerialPort(portName))\n {\n // 读取串口数据\n QObject::connect(&serial, &QSerialPort::readyRead, readData);\n\n // 发送数据\n QByteArray data("Hello, Serial Port!");\n sendData(data);\n }\n }\n\n return a.exec();\n}\n\n\n请注意,为了使用 Qt 串口库,你需要在 .pro 文件中添加以下内容:\n\n\nQT += serialport\n

Qt 串口通信:打开、关闭、搜索和收发数据示例

原文地址: https://www.cveoy.top/t/topic/qd5S 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录