RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Windows下基于MSVC搭建libusb開發(fā)環(huán)境

嵌入式USB開發(fā) ? 來源:嵌入式USB開發(fā) ? 作者:嵌入式USB開發(fā) ? 2023-06-08 10:25 ? 次閱讀

本文轉(zhuǎn)自公眾號(hào),歡迎關(guān)注

Windows下基于MSVC搭建libusb開發(fā)環(huán)境 (qq.com)

準(zhǔn)備

官網(wǎng)

https://libusb.info/

源碼

git下載或者官網(wǎng)下載

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下編譯好的庫

官網(wǎng)下可以直接下載Windows下編譯好的開發(fā)包。

圖片

Libusb簡(jiǎn)介

跨平臺(tái)建議使用libusb,如果僅在win下可以使用libusbk,實(shí)際上win上libusb也是使用libusbk去調(diào)用內(nèi)核驅(qū)動(dòng),綜合下表,使用libusb開發(fā)是最合適選擇。

Libusb采用LGPL協(xié)議,對(duì)于商業(yè)軟件中使用其作為第三方庫使用,不修改其源碼是合適的,這種情況不需要開源自己的部分。而對(duì)于基于此做二次開發(fā)修改源碼的話,則修改后的代碼需要繼續(xù)符合 LGPL v2.1協(xié)議。

平臺(tái) 鏈接 狀態(tài)
libusb 跨平臺(tái) https://libusb.info/ libusb沒有涉及Windows內(nèi)核驅(qū)動(dòng),是一個(gè)用戶空間庫,支持以下內(nèi)核驅(qū)動(dòng)程序: 基本都是通過** libusbK.dll調(diào)用內(nèi)核驅(qū)動(dòng)。lWinUSB.sys無libusbK.dll時(shí):libusb-1.0.dll --> WinUSB.dll --> WinUSB.sys有l(wèi)ibusbK.dll時(shí):libusb-1.0.dll -->libusbK.dll --> WinUSB.dll --> WinUSB.sysllibusbK.sys內(nèi)核驅(qū)動(dòng)libusb-1.0.dll --> libusbK.dll** --> libusbK.sysllibusb0.sys內(nèi)核驅(qū)動(dòng)(不夠完善)libusb-1.0.dll -->libusbK.dll--> libusb0.syslusbdk驅(qū)動(dòng)(不夠完善)lHID驅(qū)動(dòng)(不夠完善),使用HIDAPI 更好 活躍原始網(wǎng)站libusb.org不再使用,libusbx原先是libusb的克隆現(xiàn)在已經(jīng)合并到libusb,libusbx.org現(xiàn)在和libusb沒有關(guān)系。
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修復(fù)不再更新,跨平臺(tái)建議使用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上即使用該庫調(diào)用內(nèi)核驅(qū)動(dòng)。支持同步傳輸,完全兼容WinUSB的API。 活躍
openusb Solaris https://sourceforge.net/projects/openusb/ 來源于libusb-1.0 最后更新2020年
usbdk 跨平臺(tái) 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

驅(qū)動(dòng)切換

先下載Zadig用于切換驅(qū)動(dòng)

https://zadig.akeo.ie/

圖片

編譯libusb庫

從 https://github.com/libusb/libusb.git下載最新的代碼

進(jìn)入代碼目錄雙擊打開libusb\\msvc\\libusb.sln (注我這里試用MSVC Community 2022)

點(diǎn)擊左側(cè)解決方案,菜單欄生成->生成解決方案

圖片

生成的動(dòng)態(tài)庫dll位于libusb\\build\\v143\\x64\\Debug\\dll下 libusb-1.0.dl libusb-1.0.lib

生成的靜態(tài)庫lib位于libusb\\build\\v143\\x64\\Debug\\lib下 libusb-1.0.lib

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

libusb\\build\\v143\\x64\\Debug下還生成了很多測(cè)試程序,比如.\\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庫

可以從官網(wǎng)https://libusb.info/

菜單欄

Downloads->Latest windows Binaries 下載

我這里下載的是最新版libusb-1.0.26-binaries.7z

解壓

動(dòng)態(tài)鏈接庫libusb-1.0.26-binaries\\VS2015-x64\\dll下的libusb-1.0.dll和libusb-1.0.lib

靜態(tài)鏈接庫libusb-1.0.26-binaries\\VS2015-x64\\lib下的getopt.lib和libusb-1.0.lib

在自己的工程中使用

工程配置

這里使用我們從源碼構(gòu)建的動(dòng)態(tài)鏈接庫的形式,靜態(tài)鏈接庫一樣。

在自己的工程目錄中創(chuàng)建libusb目錄

創(chuàng)建inc和lib子目錄

復(fù)制libusb\\libusb下所有頭文件到自己工程libusb下的inc目錄下

復(fù)制libusb\\build\\v143\\x64\\Debug\\dll下的 libusb-1.0.dl libusb-1.0.lib,libusb\\build\\v143\\x64\\Debug下的getopt.lib到

自己工程libusb下的lib目錄下

右鍵點(diǎn)擊工程名->屬性

設(shè)置頭文件包含路徑

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

設(shè)置庫文件包含路徑

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

圖片

設(shè)置要包含的庫getopt.lib;libusb-1.0.lib;

圖片

測(cè)試

復(fù)制libusb\\examples下的testlibusb.c到自己的工程目錄,添加到工程。

生成解決方案

將libusb-1.0.dll復(fù)制到exe文件所在目錄,然后運(yùn)行

.\\USB.exe -v

可以查看設(shè)備的相關(guān)信息。

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

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 嵌入式
    +關(guān)注

    關(guān)注

    5082

    文章

    19104

    瀏覽量

    304785
  • 內(nèi)核
    +關(guān)注

    關(guān)注

    3

    文章

    1372

    瀏覽量

    40275
  • WINDOWS
    +關(guān)注

    關(guān)注

    3

    文章

    3541

    瀏覽量

    88617
  • 開發(fā)環(huán)境
    +關(guān)注

    關(guān)注

    1

    文章

    225

    瀏覽量

    16609
  • libusb
    +關(guān)注

    關(guān)注

    0

    文章

    8

    瀏覽量

    2829
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Windows基于MSVC搭建libuvc開發(fā)環(huán)境

    libuvc是基于libusb的跨平臺(tái)UVC庫。在Mac 和 Linux上可以直接構(gòu)建(使用cmake),也可以移植到Windows
    的頭像 發(fā)表于 06-08 10:19 ?6521次閱讀
    <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'>開發(fā)</b><b class='flag-5'>環(huán)境</b>

    Windows基于MSVC搭建libjpeg開發(fā)環(huán)境

    Windows基于MSVC搭建libjpeg開發(fā)環(huán)境
    的頭像 發(fā)表于 06-08 10:23 ?1706次閱讀
    <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'>開發(fā)</b><b class='flag-5'>環(huán)境</b>

    Windows基于MSVC搭建ffmpeg開發(fā)環(huán)境

    Windows基于MSVC搭建ffmpeg開發(fā)環(huán)境
    的頭像 發(fā)表于 06-08 10:27 ?1931次閱讀
    <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'>開發(fā)</b><b class='flag-5'>環(huán)境</b>

    Windows基于MSVC搭建SDL開發(fā)環(huán)境

    Windows基于MSVC搭建SDL開發(fā)環(huán)境
    的頭像 發(fā)表于 06-08 10:29 ?1576次閱讀
    <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'>開發(fā)</b><b class='flag-5'>環(huán)境</b>

    Windows使用pthread-開發(fā)環(huán)境搭建

    Windows使用pthread-開發(fā)環(huán)境搭建
    的頭像 發(fā)表于 06-08 10:32 ?5677次閱讀
    <b class='flag-5'>Windows</b><b class='flag-5'>下</b>使用pthread-<b class='flag-5'>開發(fā)</b><b class='flag-5'>環(huán)境</b><b class='flag-5'>搭建</b>

    開發(fā)環(huán)境搭建教程

    android Windows系統(tǒng)開發(fā)環(huán)境搭建
    發(fā)表于 03-22 17:42 ?0次下載

    搭建C語言開發(fā)環(huán)境Windows平臺(tái))匯總

    本文給大家匯總了5種在WIN平臺(tái)下搭建C語言開發(fā)環(huán)境的方法,包括在Windows平臺(tái)配置GNU環(huán)境,使用Sublime Test
    的頭像 發(fā)表于 02-01 10:03 ?3727次閱讀

    php開發(fā)環(huán)境搭建和使用

    本文主要介紹的是php開發(fā)環(huán)境搭建和使用。apache在默認(rèn)情況下不會(huì)處理php頁面,Apache處理php頁面的步驟:即:php開發(fā)環(huán)境
    的頭像 發(fā)表于 02-01 15:26 ?3452次閱讀
    php<b class='flag-5'>開發(fā)</b><b class='flag-5'>環(huán)境</b>的<b class='flag-5'>搭建</b>和使用

    ESP32教程——Windows開發(fā)環(huán)境搭建.pdf下載

    ESP32教程——Windows開發(fā)環(huán)境搭建.pdf
    發(fā)表于 04-14 10:41 ?47次下載
    ESP32教程——<b class='flag-5'>Windows</b><b class='flag-5'>開發(fā)</b><b class='flag-5'>環(huán)境</b><b class='flag-5'>搭建</b>.pdf下載

    如何在Windows系統(tǒng)安裝搭建PHP環(huán)境

    這兩天剛裝好Windows 7,碰巧前段時(shí)間有朋友問我Windows 如何安裝搭建PHP 環(huán)境,所以打算勤勞
    發(fā)表于 08-09 16:56 ?13次下載

    ESP32教程之如何在Windows系統(tǒng)上搭建開發(fā)環(huán)境

    本文檔的主要內(nèi)容詳細(xì)介紹的是ESP32教程之如何在Windows系統(tǒng)上搭建開發(fā)環(huán)境
    發(fā)表于 12-13 15:34 ?40次下載
    ESP32教程之如何在<b class='flag-5'>Windows</b>系統(tǒng)上<b class='flag-5'>搭建</b><b class='flag-5'>開發(fā)</b><b class='flag-5'>環(huán)境</b>

    MM32F013x——Windows環(huán)境基于Eclipse開發(fā)、調(diào)試MM32

    前面一章節(jié)介紹了在Windows搭建Eclipse開發(fā)環(huán)境,本章節(jié)將介紹在Windows
    發(fā)表于 01-25 18:53 ?2次下載
    MM32F013x——<b class='flag-5'>Windows</b><b class='flag-5'>環(huán)境</b><b class='flag-5'>下</b>基于Eclipse<b class='flag-5'>開發(fā)</b>、調(diào)試MM32

    MM32F013x——Windows搭建Eclipse開發(fā)環(huán)境

    前段時(shí)間有客戶問到如何在Windows環(huán)境基于Eclipse開發(fā)、調(diào)試MM32 MCU,經(jīng)過嘗試,現(xiàn)將環(huán)境
    發(fā)表于 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'>開發(fā)</b><b class='flag-5'>環(huán)境</b>

    MM32F013x——Windows搭建Eclipse開發(fā)環(huán)境

    如何在Windows環(huán)境基于Eclipse開發(fā)、調(diào)試MM32 MCU,經(jīng)過嘗試,現(xiàn)將環(huán)境搭建
    發(fā)表于 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'>開發(fā)</b><b class='flag-5'>環(huán)境</b>

    Windows搭建ARM11裸機(jī)開發(fā)環(huán)境:Eclipse創(chuàng)建工程

    上一篇文章介紹了在Windows搭建ARM11的裸機(jī)開發(fā)環(huán)境,需要的朋友可以過去看看。
    的頭像 發(fā)表于 04-08 09:36 ?1213次閱讀
    RM新时代网站-首页