0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Windows下基于MSVC搭建libusb开发环境

嵌入式USB开发 来源:嵌入式USB开发 作者:嵌入式USB开发 2023-06-08 10:25 次阅读

本文转自公众号,欢迎关注

Windows下基于MSVC搭建libusb开发环境 (qq.com)

准备

官网

https://libusb.info/

源码

git下载或者官网下载

https://github.com/libusb/libusb.git

图片

API参考

https://libusb.sourceforge.io/api-1.0/libusb_api.html

WIKI

https://github.com/libusb/libusb/wiki

WINDOWS下编译好的库

官网下可以直接下载Windows下编译好的开发包。

图片

Libusb简介

跨平台建议使用libusb,如果仅在win下可以使用libusbk,实际上win上libusb也是使用libusbk去调用内核驱动,综合下表,使用libusb开发是最合适选择。

Libusb采用LGPL协议,对于商业软件中使用其作为第三方库使用,不修改其源码是合适的,这种情况不需要开源自己的部分。而对于基于此做二次开发修改源码的话,则修改后的代码需要继续符合 LGPL v2.1协议。

平台 链接 状态
libusb 跨平台 https://libusb.info/ libusb没有涉及Windows内核驱动,是一个用户空间库,支持以下内核驱动程序: 基本都是通过** libusbK.dll调用内核驱动。lWinUSB.sys无libusbK.dll时:libusb-1.0.dll --> WinUSB.dll --> WinUSB.sys有libusbK.dll时:libusb-1.0.dll -->libusbK.dll --> WinUSB.dll --> WinUSB.sysllibusbK.sys内核驱动libusb-1.0.dll --> libusbK.dll** --> libusbK.sysllibusb0.sys内核驱动(不够完善)libusb-1.0.dll -->libusbK.dll--> libusb0.syslusbdk驱动(不够完善)lHID驱动(不够完善),使用HIDAPI 更好 活跃原始网站libusb.org不再使用,libusbx原先是libusb的克隆现在已经合并到libusb,libusbx.org现在和libusb没有关系。
libusb-win32 Windowslibusb0.sys(WDM)libusb0.dll(API) https://sourceforge.net/p/libusb-win32/wiki/Home/https://github.com/mcuee/libusb-win32 libusb0.dll(API)支持 使用libusb0.sys和libusbK.sys.API是libusb-0.1 API的超集 最后更新2022目前只做bug修复不再更新,跨平台建议使用libusb,仅win下建议使用libusbk
libusbK WindowslibusbK.sys(KMDF)libusbK.dll(API) https://libusbk.sourceforge.net/UsbK3/index.htmlhttps://github.com/mcuee/libusbk/ libusbK.dll(API)支持使用libusbK.sys,libusb0.sys,WinUSBlibusb在windows上即使用该库调用内核驱动。支持同步传输,完全兼容WinUSB的API。 活跃
openusb Solaris https://sourceforge.net/projects/openusb/ 来源于libusb-1.0 最后更新2020年
usbdk 跨平台 https://github.com/daynix/UsbDk 来源于libusb-1.0.21支持同步传输支持不如WinUSB/libusbK.sys/libusb0.sys 最后更新2020

在Windows下使用

参考

https://github.com/libusb/libusb/wiki/Windows#How_to_use_libusb_on_Windows

我们这里基于libusbk

安装libusbk

https://sourceforge.net/projects/libusbk/

图片

下载到的版本是libusbK-3.1.0.0-setup.exe

驱动切换

先下载Zadig用于切换驱动

https://zadig.akeo.ie/

图片

编译libusb库

从 https://github.com/libusb/libusb.git下载最新的代码

进入代码目录双击打开libusb\\msvc\\libusb.sln (注我这里试用MSVC Community 2022)

点击左侧解决方案,菜单栏生成->生成解决方案

图片

生成的动态库dll位于libusb\\build\\v143\\x64\\Debug\\dll下 libusb-1.0.dl libusb-1.0.lib

生成的静态库lib位于libusb\\build\\v143\\x64\\Debug\\lib下 libusb-1.0.lib

libusb\\build\\v143\\x64\\Debug下的getopt.lib

libusb\\build\\v143\\x64\\Debug下还生成了很多测试程序,比如.\\testlibusb.exe

PS C:\\Users\\qinyunti\\OneDrive\\wuqi\\usb\\libusb\\build\\v143\\x64\\Debug > .\\testlibusb.exe


Dev (bus 2, device 5): 0BDA - 4853 speed: 12M


Dev (bus 2, device 0): 8086 - 51ED speed: 5G


Dev (bus 2, device 12): 15BA - 002A speed: 480M


Dev (bus 2, device 6): 046D - C542 speed: 12M


Manufacturer:              Logitech


Product:                   Wireless Receiver


Dev (bus 2, device 4): 174F - 1811 speed: 480M


Manufacturer:


Product:                   Integrated Camera


Dev (bus 2, device 2): 05E3 - 0612 speed: 5G


Dev (bus 2, device 14): 0403 - 6001 speed: 12M


Dev (bus 2, device 16): 16C0 - 05DC speed: 5G


Manufacturer:              tusb.org


Product:                   USB Packet Viewer


Dev (bus 2, device 8): 0B95 - 1790 speed: 5G


Dev (bus 2, device 3): 05E3 - 0610 speed: 480M


Dev (bus 1, device 0): 8086 - 461E speed: 5G


Dev (bus 2, device 15): 0403 - 6001 speed: 12M


Dev (bus 2, device 11): 1A40 - 0101 speed: 480M


Dev (bus 2, device 13): 0403 - 6010 speed: 480M


PS C:\\Users\\qinyunti\\OneDrive\\wuqi\\usb\\libusb\\build\\v143\\x64\\Debug >

直接下载libusb库

可以从官网https://libusb.info/

菜单栏

Downloads->Latest windows Binaries 下载

我这里下载的是最新版libusb-1.0.26-binaries.7z

解压

动态链接库libusb-1.0.26-binaries\\VS2015-x64\\dll下的libusb-1.0.dll和libusb-1.0.lib

静态链接库libusb-1.0.26-binaries\\VS2015-x64\\lib下的getopt.lib和libusb-1.0.lib

在自己的工程中使用

工程配置

这里使用我们从源码构建的动态链接库的形式,静态链接库一样。

在自己的工程目录中创建libusb目录

创建inc和lib子目录

复制libusb\\libusb下所有头文件到自己工程libusb下的inc目录下

复制libusb\\build\\v143\\x64\\Debug\\dll下的 libusb-1.0.dl libusb-1.0.lib,libusb\\build\\v143\\x64\\Debug下的getopt.lib到

自己工程libusb下的lib目录下

右键点击工程名->属性

设置头文件包含路径

$(MSBuildProjectDirectory)\\Src\\libusb\\inc;

设置库文件包含路径

$(MSBuildProjectDirectory)\\Src\\libusb\\lib;

图片

设置要包含的库getopt.lib;libusb-1.0.lib;

图片

测试

复制libusb\\examples下的testlibusb.c到自己的工程目录,添加到工程。

生成解决方案

将libusb-1.0.dll复制到exe文件所在目录,然后运行

.\\USB.exe -v

可以查看设备的相关信息

Dev (bus 2, device 13): 0403 - 6010 speed: 480M


Configuration:


wTotalLength:            55


bNumInterfaces:          2


bConfigurationValue:     1


iConfiguration:          0


bmAttributes:            80h


MaxPower:                50


Interface:


bInterfaceNumber:      0


bAlternateSetting:     0


bNumEndpoints:         2


bInterfaceClass:       255


bInterfaceSubClass:    255


bInterfaceProtocol:    255


iInterface:            2


Endpoint:


bEndpointAddress:    81h


bmAttributes:        02h


wMaxPacketSize:      512


bInterval:           0


bRefresh:            0


bSynchAddress:       0


Endpoint:


bEndpointAddress:    02h


bmAttributes:        02h


wMaxPacketSize:      512


bInterval:           0


bRefresh:            0


bSynchAddress:       0


Interface:


bInterfaceNumber:      1


bAlternateSetting:     0


bNumEndpoints:         2


bInterfaceClass:       255


bInterfaceSubClass:    255


bInterfaceProtocol:    255


iInterface:            2


Endpoint:


bEndpointAddress:    83h


bmAttributes:        02h


wMaxPacketSize:      512


bInterval:           0


bRefresh:            0


bSynchAddress:       0


Endpoint:


bEndpointAddress:    04h


bmAttributes:        02h


wMaxPacketSize:      512


bInterval:           0


bRefresh:            0


bSynchAddress:       0

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    5076

    文章

    19045

    浏览量

    303853
  • 内核
    +关注

    关注

    3

    文章

    1367

    浏览量

    40252
  • WINDOWS
    +关注

    关注

    3

    文章

    3527

    浏览量

    88484
  • 开发环境
    +关注

    关注

    1

    文章

    223

    浏览量

    16595
  • libusb
    +关注

    关注

    0

    文章

    8

    浏览量

    2826
收藏 人收藏

    评论

    相关推荐

    Windows基于MSVC搭建libuvc开发环境

    libuvc是基于libusb的跨平台UVC库。在Mac 和 Linux上可以直接构建(使用cmake),也可以移植到Windows
    的头像 发表于 06-08 10:19 6280次阅读
    <b class='flag-5'>Windows</b><b class='flag-5'>下</b>基于<b class='flag-5'>MSVC</b><b class='flag-5'>搭建</b>libuvc<b class='flag-5'>开发</b><b class='flag-5'>环境</b>

    Windows基于MSVC搭建libjpeg开发环境

    Windows基于MSVC搭建libjpeg开发环境
    的头像 发表于 06-08 10:23 1669次阅读
    <b class='flag-5'>Windows</b><b class='flag-5'>下</b>基于<b class='flag-5'>MSVC</b><b class='flag-5'>搭建</b>libjpeg<b class='flag-5'>开发</b><b class='flag-5'>环境</b>

    Windows基于MSVC搭建ffmpeg开发环境

    Windows基于MSVC搭建ffmpeg开发环境
    的头像 发表于 06-08 10:27 1863次阅读
    <b class='flag-5'>Windows</b><b class='flag-5'>下</b>基于<b class='flag-5'>MSVC</b><b class='flag-5'>搭建</b>ffmpeg<b class='flag-5'>开发</b><b class='flag-5'>环境</b>

    Windows基于MSVC搭建SDL开发环境

    Windows基于MSVC搭建SDL开发环境
    的头像 发表于 06-08 10:29 1536次阅读
    <b class='flag-5'>Windows</b><b class='flag-5'>下</b>基于<b class='flag-5'>MSVC</b><b class='flag-5'>搭建</b>SDL<b class='flag-5'>开发</b><b class='flag-5'>环境</b>

    Windows使用pthread-开发环境搭建

    Windows使用pthread-开发环境搭建
    的头像 发表于 06-08 10:32 5616次阅读
    <b class='flag-5'>Windows</b><b class='flag-5'>下</b>使用pthread-<b class='flag-5'>开发</b><b class='flag-5'>环境</b><b class='flag-5'>搭建</b>

    开发环境搭建教程

    android Windows系统开发环境搭建
    发表于 03-22 17:42 0次下载

    搭建C语言开发环境Windows平台)汇总

    本文给大家汇总了5种在WIN平台下搭建C语言开发环境的方法,包括在Windows平台配置GNU环境,使用Sublime Test
    的头像 发表于 02-01 10:03 3714次阅读

    php开发环境搭建和使用

    本文主要介绍的是php开发环境搭建和使用。apache在默认情况下不会处理php页面,Apache处理php页面的步骤:即:php开发环境
    的头像 发表于 02-01 15:26 3436次阅读
    php<b class='flag-5'>开发</b><b class='flag-5'>环境</b>的<b class='flag-5'>搭建</b>和使用

    ESP32教程——Windows开发环境搭建.pdf下载

    ESP32教程——Windows开发环境搭建.pdf
    发表于 04-14 10:41 47次下载
    ESP32教程——<b class='flag-5'>Windows</b><b class='flag-5'>开发</b><b class='flag-5'>环境</b><b class='flag-5'>搭建</b>.pdf下载

    如何在Windows系统安装搭建PHP环境

    这两天刚装好Windows 7,碰巧前段时间有朋友问我Windows 如何安装搭建PHP 环境,所以打算勤劳
    发表于 08-09 16:56 13次下载

    ESP32教程之如何在Windows系统上搭建开发环境

    本文档的主要内容详细介绍的是ESP32教程之如何在Windows系统上搭建开发环境
    发表于 12-13 15:34 40次下载
    ESP32教程之如何在<b class='flag-5'>Windows</b>系统上<b class='flag-5'>搭建</b><b class='flag-5'>开发</b><b class='flag-5'>环境</b>

    MM32F013x——Windows环境基于Eclipse开发、调试MM32

    前面一章节介绍了在Windows搭建Eclipse开发环境,本章节将介绍在Windows
    发表于 01-25 18:53 2次下载
    MM32F013x——<b class='flag-5'>Windows</b><b class='flag-5'>环境</b><b class='flag-5'>下</b>基于Eclipse<b class='flag-5'>开发</b>、调试MM32

    MM32F013x——Windows搭建Eclipse开发环境

    前段时间有客户问到如何在Windows环境基于Eclipse开发、调试MM32 MCU,经过尝试,现将环境
    发表于 01-25 18:58 2次下载
    MM32F013x——<b class='flag-5'>Windows</b><b class='flag-5'>下</b><b class='flag-5'>搭建</b>Eclipse<b class='flag-5'>开发</b><b class='flag-5'>环境</b>

    MM32F013x——Windows搭建Eclipse开发环境

    如何在Windows环境基于Eclipse开发、调试MM32 MCU,经过尝试,现将环境搭建
    发表于 02-08 16:27 1次下载
    MM32F013x——<b class='flag-5'>Windows</b><b class='flag-5'>下</b><b class='flag-5'>搭建</b>Eclipse<b class='flag-5'>开发</b><b class='flag-5'>环境</b>

    Windows搭建ARM11裸机开发环境:Eclipse创建工程

    上一篇文章介绍了在Windows搭建ARM11的裸机开发环境,需要的朋友可以过去看看。
    的头像 发表于 04-08 09:36 1177次阅读