使用QT编写串口助手时,常见的一个问题是,当读取到可用串口时,一般是将其保存到一个 QStringList 里,直到真正打开串口。
但是在打开串口功能时,之前已保存的串口号是否还有效,或者说,在成功连接串口之后,如果中途串口断开,QSeiresPort 并没有提供相关的检测函数,那么就需要我们自己动手实现能够实时检测到该串口是否还可用,如果不可用,应立即将串口关闭。
#include <QtSerialPort/QSerialPort>
#include <QtSerialPort/QSerialPortInfo>
#include <QTimer>
#include <QStringList>
//定义全局变量
QSerialPort *serialPort;
QTimer *timer;
QStringList portStringList; //保存当前可用的串口号
QString currentCOM = "";
//在主函数
timer = new QTimer; //定时扫描和更新串口
connect(timer,&QTimer::timeout,this,&Widget::showValidPort);//实时更新端口号
timer->start