[Qt]libusb-win32应用的学习

libusb qt 学习

链接:参考这里,超全的!!!!

安装地址:https://sourceforge.net/projects/libusb-win32/
在这里插入图片描述
点击下载
在这里插入图片描述

1、libusb-win32安装

下载libusb-win32-bin-1.2.6.0.zip,解压后进入其下的bin文件夹下,运行inf-wizard.exe程序。该程序主要是用来安装libusb-win32的驱动,以及一些相关库(.dll,.a)。官方说安装时建议先将多余的USB设备都移除,这样也避免了安装错设备的驱动。
不过可以打开inf-wizard.exe程序,进入到设备列表界面,然后再插上想要安装驱动的USB设备,等待设备列表更新,就能看出自己的设备是哪一个了,如下图。列表若是无法自动刷新,可先上一步再下一步回到设备列表界面。
如此,对刚开始折腾USB,不太明了的人,也不失为一个不错的方法,省得折腾了。
在这里插入图片描述

  • 可以默认,Device Name可以自定义,方便自己查找
    在这里插入图片描述
    (1)最后要点击“Install Now…”进行驱动安装,依赖库会同时安装到系统中去,尤其是libusb0.dll动态库
    在这里插入图片描述

  • 过程中如果碰到如下图问题,不要紧张
    退出,重新 使用管理员身份 打开软件,即可解决问题。
    在这里插入图片描述
    在这里插入图片描述
    (2)另外,最好在目标工程目录下,自己新建一个driver文件夹,放置生成的.inf等文件
    同时还会生成一系列驱动配置文件

  • install-filter——filter驱动安装。filterdriver 是驱动的高层境界,杀毒软件,防火墙,笔记本的多功能按键等等都会用到。

  • libusb-dll——动态链接库,生成libusb0.dll。接下来会说的libusb core函数就封装在这里面。同时生成了libusb0.lib文件,供程序链接,实现libusb0.dll的装载。

  • libusb-sys——USB驱动,生成驱动文件libusb0.sys。注意它是makefile项目。

  • testbulk——libusb-win32的简单案列传送“hello world!”。

  • testlibusb——实现libusb-win32驱动的设备的遍历并打印一部分设备描述信息。

  • testlibusb-win——WINFORM版的testlibusb。
    安装好后进入x86文件夹,进行如下操作
    在这里插入图片描述

(3)记住 Vendor ID和Product ID, 这两个ID用来识别你的设备,程序中要用到的,也可以使用如下方式查看VID和PID在这里插入图片描述
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/73acd76045ef4734a1957f29dd388462.png

  • 过程中会提示保存驱动程序,记住保存的位置,因为之后若要别的计算机上使用同一个设备,或是你为这个设备写好的程序,那么这个驱动是需要的。否则就必需再重新在其它计算机上用libusb-win32的inf-wizard.exe安装驱动。尤其是若涉及到要发布出去给他人使用的情况,这样子就更不适合了。发布的方法之后会讲到。

2、Qt关于libusb环境的配置

由于libusb-win32是第三方的东西,所以需要配置到Qt中去,才能够使用。

(1)将解压的libusb-win32下的include中的libusb头文件中的lusb0_usb.h拷贝到Qt的include文件夹下。
Qt5.1自带QtCreator和mingW,mingW的include路径为:C:\Qt\Qt5.12.2\Tools\mingw730_64\x86_64-w64-mingw32\include。要确认你的环境上的这个路径哦!!
(2)导入lib库,在程序的.pro文件中,加入指定lib文件(.lib/.a)文件,将解压的libusb-win32下的lib中的库文件拷贝到Qt工程下(自己写的Qt程序的工程目录)格式如下(两种均可):

LIBS+=(LIB文件)
LIBS+=-L$$PWD -llibusb-1.0  

$$PWD表示当前目录,-L(libusb-1.0.lib存在的路径) -l(libusb-1.0.lib的文件名称)

(3)为了隐式调用dll文件,需要在工程中加入lib文件,同时把libusb0.dll这个文件放在Qt工程文件目录下(和.pro在同一目录)

如出现以下问题:
把lilbusb-win32-bin-1.2.6.0/bin/x86/libusb0_x86.dll复制到应用程序目录下改名为libusb0.dll即可

在这里插入图片描述

(4)加上头文件 #include “libusb.h”
(5)在生成exe的文件夹下放入libusb-1.0.dll文件





最简单

  1. D:\libs&drivers\libusb-win32-bin-1.2.6.0\include 中的 lusb0_usb.h文件放到工程下面改名为usb.h
  2. D:\libs&drivers\libusb-win32-bin-1.2.6.0\lib\msvc 中的 libusb.lib文件放到工程目录下
  3. D:\libs&drivers\libusb-win32-bin-1.2.6.0\bin\amd64中的libusb0.dll文件放到工程目录下
  4. 如图
    在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述
5. 重新编译

  • 23
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
关于libusb-win32开发的经验(2012-11-10 11:37:50)转载▼标签: win32rs232驱动usblibusbit 分类: 外围器件接口 作为设备开发者, 一般需要让设备与上位机PC通讯, 我们往往考虑采用以下几种接口: rs232, USB, ethernet. 现在在PC机上已经很难见到rs232的接口, 而ethernet也需要做特殊的配置, USB大多成为我们的首选. 对于数据偏少的应用, 我们可以利用USB虚拟串口的方式来完成这样的任务, 虚拟串口的驱动和实例, 对于下位机来说也非常常见. 有个问题: 很多应用无法用虚拟串口的方式来得到满足, 只能按照USB的方式来解决问题. 这个时候, 我们只好针对USB进行编程. 对于复杂的驱动编程, 大多数程序员往往望而却步. 不过总有其他简单的方法解决问题. 这里, 我们介绍一个USB通讯库: libusb. 介绍 libusb是一个针对usb通讯的库. 使用它, 你不需要知道操作系统的细节, 你只需要对USB有足够的了解即可. 它也不需要你写驱动, 所有的工作都可以在用户态完成. 使用方法很简单, 这里有一个示例: http://sourceforge.net/apps/trac/libusb-win32/wiki/libusbwin32_documentation#IV.Examples , 是不是很简单? 原理 libusb自己带有一个内核驱动, 名字叫libusb0.sys, 放在WINDOWSSYSTEM32DRIVERS里面. 用户程序调用libusb0.dll, dll会把任务交由驱动来完成. 这样保证用户态就能够完成USB通讯的作业. 具体做了什么, 可以通过下载项目的源文件来了解, 等我有时间的时候再看看吧. 安装方法 libusb现在有好几个版本. 主页面在这里: http://www.libusb.org/ 因为我们一般是进行工程应用, 选择相对稳定的版本: libusb-0.1. 平台在windows下的话, 我们采用libusb-win32: http://www.libusb.org/wiki/libusb-win32 linux下一般已经添加到源里面去了, 查找libusb即可. windows下安装方法: http://www.libusb.org/wiki/libusb-win32#Installation 里面有2种安装方式, Filter Driver Installation 和 Device Driver Installation, 前面一个可以说是开发环境, 后面可以说是发布驱动本身. 我们因为是做系统, 选择前面一个方式, 省得麻烦. 使用 这里有比较详细的文档: http://sourceforge.net/apps/trac/libusb-win32/wiki/libusbwin32_documentation libusb-win32的下载地址http://sourceforge.net/apps/trac/libusb-win32/wiki 开发者论坛地址:http://libusb.6.n5.nabble.com/ libusb-1.0 API Reference:http://libusb.sourceforge.net/api-1.0/ 开发过程中有超时问题的原因:http://sourceforge.net/apps/trac/libusb-win32/wiki/libusbwin32_documentation
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值