【QT 自研上位机 与 ESP32下位机联调>>>串口控制GPIO-基础样例-联合文章】
以下是一个简单的例子,展示了如何在Qt应用程序中配置串口,并通过串口控制ESP32的GPIO。
#include <QCoreApplication>
#include <QSerialPort>
#include <QSerialPortInfo>
#include <QDebug>
// 定义GPIO编号和指令
#define GPIO_NUM 2
#define ESP32_CMD_GPIO_HIGH '1'
#define ESP32_CMD_GPIO_LOW '0'
int main(int argc, char *argv[]) {
QCoreApplication a(argc, argv);
// 检测可用串口
QList<QSerialPortInfo> availablePorts = QSerialPortInfo::availablePorts();
if (availablePorts.isEmpty()) {
qDebug() << "No serial ports available!";
return -1;
}
// 打开串口
QSerialPort serialPort;
serialPort.setPort(availablePorts.first());
if (!serialPort.open(QIODevice::ReadWrite)) {
qDebug() << "Error opening serial port";
return -1;
}
// 配置串口参数
serialPort.setBaudRate(115200);
serialPort.setDataBits(QSerialPort::Data8);
serialPort.setParity(QSerialPort::NoParity);
serialPort.setStopBits(QSerialPort::OneStop);
serialPort.setFlowControl(QSerialPort::NoFlowControl);
// 写入命令控制GPIO
QByteArray command;
command.append(ESP32_CMD_GPIO_HIGH); // 高电平命令
serialPort.write(command);
return a.exec();
}
这段代码首先检测可用的串口,然后打开第一个可用的串口,并设置波特率为115200,数据位8,无校验位,停止位1,无流控制。最后,它通过串口发送一个命令来控制ESP32的GPIO。在实际应用中,你可能需要添加更多的错误处理和状态管理,以及界面元素来与用户交互。
评论已关闭