当先锋百科网

首页 1 2 3 4 5 6 7

VS安装 + Qt安装 :按照官方提示的步骤就可以了。

下载安装结束后

1,打开VS——扩展——管理扩展——搜索Qt Visual Studio Tools——安装

2,扩展——Qt VS Tools——Qt Project settings——Qt Modules——select Modules——勾选Serial Port 模块

在这里简要解释一下第二步的原因:

我用QtSerialPort类的时候,第一次出现很多乱码,类似

main.obj : error LNK2019: 
无法解析的外部符号 "__declspec(dllimport) public: __thiscall QSerialPortInfo::QSerialPortInfo(class QSerialPortInfo const &)" 
(__imp_??0QSerialPortInfo@@QAE@ABV0@@Z),该符号在函数 "private: void __thiscall QList<class QSerialPortInfo>::node_copy(struct QList<class QSerialPortInfo>::Node *,struct QList<class QSerialPortInfo>::Node *,struct QList<class QSerialPortInfo>::Node *)" 
(?node_copy@?$QList@VQSerialPortInfo@@@@AAEXPAUNode@1@00@Z) 中被引用

然后我搜原因看到在依赖项中添加Qt5SerialPort.lib的方法,试了结果是无法识别该文件。

最后发现是Qt VS Tools根本就没勾选Serial Port才识别不了。注意一下这个就好。May be 将QtSerialPort的lib文件全部包含进依赖项也可以运行吧,我懒得试了。

下面附上我测试环境搭建的测试代码

#include "serial_port.h"
#include<QtSerialPort/qserialportinfo.h>

serial_port::serial_port(QWidget *parent)
    : QMainWindow(parent)
{
    ui.setupUi(this);
    QList<QSerialPortInfo> serialList;
    //给链表赋值为获取到的当前设备的所有串口信息的链表
    serialList = QSerialPortInfo::availablePorts();
    //判断有无可连接串口
    if (serialList.isEmpty())
    {
        ui.label->setText("empty");
    }
}

因为我没有下位机,也没有连接串口应用,所以显示无可用串口。
在这里插入图片描述
使用VSPD工具创建了虚拟串口,COM1和COM2,下面是用了串口之后的显示。
在这里插入图片描述
代码只是改了一点点

    if (serialList.isEmpty())
    {
        ui.label->setText("empty");
    }
    else
    {
        ui.label->setText(serialList[1].portName());
    }

如果设成0的话就是COM2了。