Qt5在打开串口后,将串口收到的数据保存到一个txt文件中
时间: 2023-12-10 08:36:52 浏览: 337
下面是一个使用Qt5打开串口并将串口收到的数据保存到txt文件中的示例代码:
```c++
#include <QCoreApplication>
#include <QtSerialPort/QSerialPort>
#include <QtSerialPort/QSerialPortInfo>
#include <QDebug>
#include <QDateTime>
#include <QFile>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
// 查找可用的串口
QList<QSerialPortInfo> serialList = QSerialPortInfo::availablePorts();
if(serialList.isEmpty())
{
qDebug() << "No available serial port!";
return -1;
}
// 选择第一个可用串口
QSerialPort serialPort(serialList.at(0));
// 配置串口参数
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() << "Failed to open serial port!";
return -1;
}
// 打开文件
QFile file("data.txt");
if(!file.open(QIODevice::WriteOnly | QIODevice::Text))
{
qDebug() << "Failed to open file!";
return -1;
}
// 读取串口数据并保存到文件
while(serialPort.isOpen())
{
if(serialPort.waitForReadyRead(1000))
{
QByteArray data = serialPort.readAll();
QString str = QString(data);
file.write(str.toUtf8());
file.flush();
}
}
// 关闭文件和串口
file.close();
serialPort.close();
return a.exec();
}
```
在上述代码中,我们首先通过QSerialPortInfo类查找可用的串口,并选择第一个可用串口进行配置,并打开。然后创建一个data.txt文件,并将串口收到的数据保存到文件中。在while循环中,我们使用waitForReadyRead()函数等待串口有数据可读,然后使用readAll()函数读取所有数据,并将其转换为QString类型后写入文件。最后,在while循环结束后,我们关闭文件和串口。
阅读全文