前言
先上开发环境版本截图
注意!
在本篇创作时,Qt6.0版本还不能支持串口模块。具体原因我也不知道,总之是没搞出来。
正文
1、在.pro文件的第一句上,追加Qt需要的serialprot模块
QT += core gui serialport
2、加头文件
#include <QSerialPort> //操作串口
#include <QSerialPortInfo> //查看串口信息
3、枚举电脑中的串口名
QStringList port_name;
foreach(const QSerialPortInfo info, QSerialPortInfo::availablePorts())
{
port_name << info.portName();
qDebug() << "Port name:" << info.portName();
}
4、通过串口名打开指定串口
port = new QSerialPort();
if(port->isOpen())
{
port->close();
}
port->setPortName(ui->comboBox->currentText());
port->setBaudRate(QSerialPort::Baud9600);
port->setDataBits(QSerialPort::Data8);
port->setFlowControl(QSerialPort::NoFlowControl);
port->setParity(QSerialPort::NoParity); //无校验位
port->setStopBits(QSerialPort::OneStop); //一位停止位
if(!port->open(QIODevice::ReadWrite))
{
qDebug() << "open failed\n";
return;
}
5、连接数据接收信号readyRead和槽函数
connect(port, SIGNAL(readyRead()), this, SLOT(receiveInfo()));
void MainWindow::receiveInfo()
{
QByteArray info = port->readAll();
qDebug() << info;
}
6、向port写入数据
port->clear();
port->write(data, sizeof(data));