用QT写一个接收串口数据的代码
时间: 2024-05-06 10:17:53 浏览: 108
下面是一个简单的示例,演示如何使用 Qt 读取串口数据:
```cpp
// 包含头文件
#include <QCoreApplication>
#include <QtSerialPort/QSerialPort>
#include <QtSerialPort/QSerialPortInfo>
#include <QDebug>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
// 查找可用的串口
qDebug() << "Available serial ports:";
foreach (const QSerialPortInfo &serialPortInfo, QSerialPortInfo::availablePorts())
{
qDebug() << " Port name:" << serialPortInfo.portName();
qDebug() << " Description:" << serialPortInfo.description();
qDebug() << " Manufacturer:" << serialPortInfo.manufacturer();
}
// 设置串口参数
QSerialPort serialPort;
serialPort.setPortName("COM1");
serialPort.setBaudRate(QSerialPort::Baud9600);
serialPort.setDataBits(QSerialPort::Data8);
serialPort.setParity(QSerialPort::NoParity);
serialPort.setStopBits(QSerialPort::OneStop);
serialPort.setFlowControl(QSerialPort::NoFlowControl);
// 打开串口
if (serialPort.open(QIODevice::ReadOnly))
{
qDebug() << "Serial port opened:" << serialPort.portName();
}
else
{
qDebug() << "Failed to open serial port:" << serialPort.portName();
return -1;
}
// 读取串口数据
while (true)
{
if (serialPort.waitForReadyRead(100))
{
QByteArray data = serialPort.readAll();
qDebug() << "Received data:" << data;
}
}
return a.exec();
}
```
在这个示例中,我们首先使用 `QSerialPortInfo` 类查找可用的串口,并打印它们的名称、描述和制造商信息。然后,我们设置串口参数,例如波特率、数据位、校验位等等。接下来,我们使用 `QSerialPort` 类打开串口,并开始读取数据。我们使用 `waitForReadyRead()` 函数等待串口有数据可读,然后使用 `readAll()` 函数读取所有可用的数据,并打印出来。
请注意,此示例只是一个简单的演示,可能需要根据你的具体需求进行修改。
阅读全文