用qt写一段串口发送接收的程序
时间: 2023-11-26 11:02:41 浏览: 77
好的,下面是一个简单的串口发送接收程序,使用Qt的QSerialPort类实现:
```c++
#include <QCoreApplication>
#include <QtSerialPort/QSerialPort>
#include <QtSerialPort/QSerialPortInfo>
#include <QDebug>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
// 查找可用的串口
QList<QSerialPortInfo> serialPortInfos = QSerialPortInfo::availablePorts();
qDebug() << "Available serial ports:";
for (const QSerialPortInfo &serialPortInfo : serialPortInfos)
{
qDebug() << " " << serialPortInfo.portName();
}
// 打开指定的串口
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() << "Failed to open serial port!";
return -1;
}
// 发送数据
QByteArray sendData = "Hello, world!";
qint64 bytesWritten = serialPort.write(sendData);
qDebug() << "Sent " << bytesWritten << " bytes of data:" << sendData;
// 接收数据
QByteArray receiveData;
while (serialPort.waitForReadyRead(100))
{
receiveData.append(serialPort.readAll());
}
qDebug() << "Received " << receiveData.size() << " bytes of data:" << receiveData;
// 关闭串口
serialPort.close();
return a.exec();
}
```
这个程序会查找可用的串口,打开指定的串口,并发送一段数据,然后等待接收数据。注意修改`setPortName`函数的参数为你所连接的串口名称。
阅读全文