qt实现串口通信的代码
时间: 2023-05-30 13:05:55 浏览: 57
以下是一个简单的Qt串口通信代码示例:
```
#include <QCoreApplication>
#include <QtSerialPort/QSerialPort>
#include <QtSerialPort/QSerialPortInfo>
#include <QDebug>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
// 枚举可用的串口
QList<QSerialPortInfo> availablePorts = QSerialPortInfo::availablePorts();
qDebug() << "可用的串口数量:" << availablePorts.size();
foreach (const QSerialPortInfo &portInfo, availablePorts) {
qDebug() << "串口名:" << portInfo.portName();
qDebug() << "描述:" << portInfo.description();
qDebug() << "制造商:" << portInfo.manufacturer();
}
// 打开串口
QSerialPort serialPort;
serialPort.setPortName("COM3"); // 根据实际情况修改串口名
serialPort.setBaudRate(QSerialPort::Baud9600); // 设置波特率
serialPort.setDataBits(QSerialPort::Data8); // 设置数据位
serialPort.setParity(QSerialPort::NoParity); // 设置校验位
serialPort.setStopBits(QSerialPort::OneStop); // 设置停止位
serialPort.setFlowControl(QSerialPort::NoFlowControl); // 设置流控制
if (!serialPort.open(QIODevice::ReadWrite)) {
qDebug() << "打开串口失败!";
return 1;
}
// 发送数据
QByteArray data("Hello, world!");
qint64 bytesWritten = serialPort.write(data);
qDebug() << "发送的数据:" << data << "(字节数:" << bytesWritten << ")";
// 接收数据
QByteArray responseData = serialPort.readAll();
qDebug() << "接收的数据:" << responseData;
// 关闭串口
serialPort.close();
return a.exec();
}
```
需要注意的是,这只是一个简单的示例,实际应用中还需要考虑许多因素,比如错误处理、数据解析等。