(ps.笔者主要做上位机开发,涉及硬件、嵌入式方面,各边专业词汇可能不准确)
1.背景介绍
最近有个项目进行迭代,嵌入式那边说我们升级一下,之前的485串口通信有问题,这次我们用usb2.0进行通信,于是笔者开始寻找Qt里怎么进行usb通信。发现有个开源库QtUsb,那就先试试它了。
2.安装QtUsb
QtUsb项目地址: fpoussin/QtUsb: A cross-platform USB Module for Qt. (github.com)
安装环境: win10,Qt5.15.2 MSVC2019 64bit
可以直接从正式安装部分看起
试错部分
刚开始笔者按照README里面介绍去Releases · fpoussin/QtUsb (github.com)中下载了源码(Source code(zip)).
之后在Qt Creator进行构建,构建之后也不行(其实看不太懂README里的安装指南)。安装失败
正式安装
然后笔者发现Releases · fpoussin/QtUsb (github.com)中也有编译好的文件,结合之前调用一些三方库的经验,选择下载了 v0.7.0-qt5.15-usb-msvc-dynamic-x64.7z 。 (git上不去下载不了的可以去 文章末尾 提供的链接下载)
解压后进入 v0.7.0-qt5.15-usb-msvc-dynamic-x64\Qt\5.15\msvc2019_64\ 目录下看到:
下文将路径 v0.7.0-qt5.15-usb-msvc-dynamic-x64\Qt\5.15\msvc2019_64\ 简称为 'A\'
笔者的QT安装路径是 D:\Qt5.15.2\5.15.2\msvc2019_64\ 如下图 ,下文简称为 'B\'
- 将 A\include 目录下的 QtUsb 文件夹copy到 B\include 目录下。
- 将 A\lib 目录下的 两个lib和两个prl 文件copy到 B\lib 目录下。
- 将 A\bin 目录下的 两个dll和两个pdb 文件copy到 B\bin 目录下。
- 将 A\mkspecs\modules 目录下的 两个dll和两个pdb 文件copy到 B\mkspecs\modules 目录下。
测试
- pro文件中加入
QT += usb - 新建一个项目,引入
#include <QUsb> - 运行看看有没有报错
3.实现与Usb通信
- fpoussin/QtUsb: A cross-platform USB Module for Qt. (github.com) 中给出了一些使用的例子,在examples文件中,完成第2章的安装后可以在Qt Creator,选中examples文件中的examples.pro进行编译运行。
- 笔者按照examples自己也实现了一个可以通过usb通信接收/发送消息的简单demo,预览如下图:
代码放到了这里:qt_usb_com_example: 使用QtUsb进行usb通信的一个简单实现,可以接受/发送消息,向usb设备
4.下载备份
git上不去的可以在这下载 官方examples 和 v0.7.0-qt5.15-usb-msvc-dynamic-x64 , 提取码:GkDg