日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

libusb-win32的使用方法

發布時間:2024/3/26 编程问答 55 豆豆
生活随笔 收集整理的這篇文章主要介紹了 libusb-win32的使用方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

之前一直找不到適合WIN7下的Tiny6410的USB下載軟件,正好這幾天開始學習USB,所以打算自己寫一個專門用于Tiny6410的WIN7下的USB下載軟件。

發現了libusb這個庫可以用作無驅USB開發,就是說根本不需要了解Window驅動開發的知識就可以開發USB設備驅動,只需要了解一下USB的相關協議即可。Windows下我幾乎不用VS來寫程序,或者說我不懂MFC吧,呵呵,所示我用Qt來做界面。好了,進入正題。首先下載libusb-win32,下載地址:http://sourceforge.net/projects/libusb-win32/files/,注意選擇下載的文件是libusb-win32-bin-1.2.6.0.zip,這不是源碼,而是一些已經編譯好的庫。解壓之,里面有這么一些文件(夾):

下面簡單介紹一下里面的東西是怎么用的。

(1)bin文件夾。里面最重要的是inf-wizard.exe這個程序,當你的USB設備插到電腦上而沒有找到驅動程序時就可以通過這個程序來安裝通用的USB驅動。雙擊它,下一步,在里面找到你的USB設備,選中后下一步,最后會彈出一個對話框讓你保存它生成驅動程序。這樣就有了驅動程序,但還沒有安裝,可以通過設備管理器來安裝,安裝成功后就可以通過libusb來編寫程序來訪問你的USB設備了。

(2)examples文件夾。里面有兩個例程,一個簡單的,一個復雜的,參考里面的bulk.c例程就好了。

(3)include文件夾。編寫程序時需要用到,一般放在你的工程目錄下。

(4)lib文件夾。里面是一些已經編譯好的庫,有borland版本的,有VC++版本的,有x64位版本的,最重要的是還有gcc版本,這里用到的就是gcc版本的,該版本可以在Qt上使用。

下面開始介紹怎么在Qt下使用該庫。
  • 新建一個Qt工程

  • 把gcc版本的庫文件libusb.a復制到工程目錄下(可以放在其他目錄),在.pro文件中追加如下一行(路徑根據自己的情況修改):

  • LIBS+=“F:/Qt/pratise/libusb-test/libusb/libusb.a”

    這樣就可以在鏈接時找到所需的函數。

  • 把上面所說的include文件夾下lusb0_usb.h文件復制到工程目錄下。

  • 編寫一個測試文件,我這里寫的比較簡單,程序的功能是只列出我的USB設備,如下:

  • 復制代碼

    1 #include “testlibusb.h”
    2 #include “lusb0_usb.h”
    3
    4 USB::USB()
    5 {
    6 //usb_set_debug(250);
    7 usb_init(); /* initialize the library /
    8 usb_find_busses(); / find all busses /
    9 usb_find_devices(); / find all connected devices */
    10
    11 my_usb_get_device_list();
    12
    13 resize(320, 240);
    14 }
    15
    16
    17 void USB::my_usb_get_device_list(void)
    18 {
    19 struct usb_bus *bus;
    20 struct usb_device dev;
    21
    22 for (bus = usb_get_busses(); bus; bus = bus->next) {
    23 for (dev = bus->devices; dev; dev = dev->next) {
    24 / for specified device
    25 if (dev->descriptor.idVendor == MY_VID
    26 && dev->descriptor.idProduct == MY_PID)
    27 {
    28 return usb_open(dev);
    29 }
    30 */
    31
    32 qDebug(“VID:VID = %x:%x\n”, dev->descriptor.idVendor, dev->descriptor.idProduct);
    33
    34 }
    35 }
    36
    37 }
    復制代碼

    好了,運行程序,效果:

    最后一行打印出來的正是Tiny6410的USB設備號。

    注意:

    這只能列出安裝了inf-wizard.exe生成的驅動程序的USB設備。一開始的時候我沒接上Tiny6410,程序沒輸出,插上一個U盤,還是沒輸出,以為是程序或者這個庫有問題,糾結了一會,后來靈光一閃,插上開發板試試吧,果然成功了,程序運行結果就如上面所示。繼續學習USB,過2天USB開發板到了就開始實戰。

    之前一直找不到適合WIN7下的Tiny6410的USB下載軟件,正好這幾天開始學習USB,所以打算自己寫一個專門用于Tiny6410的WIN7下的USB下載軟件。

    發現了libusb這個庫可以用作無驅USB開發,就是說根本不需要了解Window驅動開發的知識就可以開發USB設備驅動,只需要了解一下USB的相關協議即可。Windows下我幾乎不用VS來寫程序,或者說我不懂MFC吧,呵呵,所示我用Qt來做界面。好了,進入正題。首先下載libusb-win32,下載地址:http://sourceforge.net/projects/libusb-win32/files/,注意選擇下載的文件是libusb-win32-bin-1.2.6.0.zip,這不是源碼,而是一些已經編譯好的庫。解壓之,里面有這么一些文件(夾):

    下面簡單介紹一下里面的東西是怎么用的。

    (1)bin文件夾。里面最重要的是inf-wizard.exe這個程序,當你的USB設備插到電腦上而沒有找到驅動程序時就可以通過這個程序來安裝通用的USB驅動。雙擊它,下一步,在里面找到你的USB設備,選中后下一步,最后會彈出一個對話框讓你保存它生成驅動程序。這樣就有了驅動程序,但還沒有安裝,可以通過設備管理器來安裝,安裝成功后就可以通過libusb來編寫程序來訪問你的USB設備了。

    (2)examples文件夾。里面有兩個例程,一個簡單的,一個復雜的,參考里面的bulk.c例程就好了。

    (3)include文件夾。編寫程序時需要用到,一般放在你的工程目錄下。

    (4)lib文件夾。里面是一些已經編譯好的庫,有borland版本的,有VC++版本的,有x64位版本的,最重要的是還有gcc版本,這里用到的就是gcc版本的,該版本可以在Qt上使用。

    下面開始介紹怎么在Qt下使用該庫。
  • 新建一個Qt工程

  • 把gcc版本的庫文件libusb.a復制到工程目錄下(可以放在其他目錄),在.pro文件中追加如下一行(路徑根據自己的情況修改):

  • LIBS+=“F:/Qt/pratise/libusb-test/libusb/libusb.a”

    這樣就可以在鏈接時找到所需的函數。

  • 把上面所說的include文件夾下lusb0_usb.h文件復制到工程目錄下。

  • 編寫一個測試文件,我這里寫的比較簡單,程序的功能是只列出我的USB設備,如下:

  • 復制代碼

    1 #include “testlibusb.h”
    2 #include “lusb0_usb.h”
    3
    4 USB::USB()
    5 {
    6 //usb_set_debug(250);
    7 usb_init(); /* initialize the library /
    8 usb_find_busses(); / find all busses /
    9 usb_find_devices(); / find all connected devices */
    10
    11 my_usb_get_device_list();
    12
    13 resize(320, 240);
    14 }
    15
    16
    17 void USB::my_usb_get_device_list(void)
    18 {
    19 struct usb_bus *bus;
    20 struct usb_device dev;
    21
    22 for (bus = usb_get_busses(); bus; bus = bus->next) {
    23 for (dev = bus->devices; dev; dev = dev->next) {
    24 / for specified device
    25 if (dev->descriptor.idVendor == MY_VID
    26 && dev->descriptor.idProduct == MY_PID)
    27 {
    28 return usb_open(dev);
    29 }
    30 */
    31
    32 qDebug(“VID:VID = %x:%x\n”, dev->descriptor.idVendor, dev->descriptor.idProduct);
    33
    34 }
    35 }
    36
    37 }
    復制代碼

    好了,運行程序,效果:

    最后一行打印出來的正是Tiny6410的USB設備號。

    注意:

    這只能列出安裝了inf-wizard.exe生成的驅動程序的USB設備。一開始的時候我沒接上Tiny6410,程序沒輸出,插上一個U盤,還是沒輸出,以為是程序或者這個庫有問題,糾結了一會,后來靈光一閃,插上開發板試試吧,果然成功了,程序運行結果就如上面所示。繼續學習USB,過2天USB開發板到了就開始實戰。

    之前一直找不到適合WIN7下的Tiny6410的USB下載軟件,正好這幾天開始學習USB,所以打算自己寫一個專門用于Tiny6410的WIN7下的USB下載軟件。

    發現了libusb這個庫可以用作無驅USB開發,就是說根本不需要了解Window驅動開發的知識就可以開發USB設備驅動,只需要了解一下USB的相關協議即可。Windows下我幾乎不用VS來寫程序,或者說我不懂MFC吧,呵呵,所示我用Qt來做界面。好了,進入正題。首先下載libusb-win32,下載地址:http://sourceforge.net/projects/libusb-win32/files/,注意選擇下載的文件是libusb-win32-bin-1.2.6.0.zip,這不是源碼,而是一些已經編譯好的庫。解壓之,里面有這么一些文件(夾):

    下面簡單介紹一下里面的東西是怎么用的。

    (1)bin文件夾。里面最重要的是inf-wizard.exe這個程序,當你的USB設備插到電腦上而沒有找到驅動程序時就可以通過這個程序來安裝通用的USB驅動。雙擊它,下一步,在里面找到你的USB設備,選中后下一步,最后會彈出一個對話框讓你保存它生成驅動程序。這樣就有了驅動程序,但還沒有安裝,可以通過設備管理器來安裝,安裝成功后就可以通過libusb來編寫程序來訪問你的USB設備了。

    (2)examples文件夾。里面有兩個例程,一個簡單的,一個復雜的,參考里面的bulk.c例程就好了。

    (3)include文件夾。編寫程序時需要用到,一般放在你的工程目錄下。

    (4)lib文件夾。里面是一些已經編譯好的庫,有borland版本的,有VC++版本的,有x64位版本的,最重要的是還有gcc版本,這里用到的就是gcc版本的,該版本可以在Qt上使用。

    下面開始介紹怎么在Qt下使用該庫。
  • 新建一個Qt工程

  • 把gcc版本的庫文件libusb.a復制到工程目錄下(可以放在其他目錄),在.pro文件中追加如下一行(路徑根據自己的情況修改):

  • LIBS+=“F:/Qt/pratise/libusb-test/libusb/libusb.a”

    這樣就可以在鏈接時找到所需的函數。

  • 把上面所說的include文件夾下lusb0_usb.h文件復制到工程目錄下。

  • 編寫一個測試文件,我這里寫的比較簡單,程序的功能是只列出我的USB設備,如下:

  • 復制代碼

    1 #include “testlibusb.h”
    2 #include “lusb0_usb.h”
    3
    4 USB::USB()
    5 {
    6 //usb_set_debug(250);
    7 usb_init(); /* initialize the library /
    8 usb_find_busses(); / find all busses /
    9 usb_find_devices(); / find all connected devices */
    10
    11 my_usb_get_device_list();
    12
    13 resize(320, 240);
    14 }
    15
    16
    17 void USB::my_usb_get_device_list(void)
    18 {
    19 struct usb_bus *bus;
    20 struct usb_device dev;
    21
    22 for (bus = usb_get_busses(); bus; bus = bus->next) {
    23 for (dev = bus->devices; dev; dev = dev->next) {
    24 / for specified device
    25 if (dev->descriptor.idVendor == MY_VID
    26 && dev->descriptor.idProduct == MY_PID)
    27 {
    28 return usb_open(dev);
    29 }
    30 */
    31
    32 qDebug(“VID:VID = %x:%x\n”, dev->descriptor.idVendor, dev->descriptor.idProduct);
    33
    34 }
    35 }
    36
    37 }
    復制代碼

    好了,運行程序,效果:

    最后一行打印出來的正是Tiny6410的USB設備號。

    注意:

    這只能列出安裝了inf-wizard.exe生成的驅動程序的USB設備。一開始的時候我沒接上Tiny6410,程序沒輸出,插上一個U盤,還是沒輸出,以為是程序或者這個庫有問題,糾結了一會,后來靈光一閃,插上開發板試試吧,果然成功了,程序運行結果就如上面所示。繼續學習USB,過2天USB開發板到了就開始實戰。

    之前一直找不到適合WIN7下的Tiny6410的USB下載軟件,正好這幾天開始學習USB,所以打算自己寫一個專門用于Tiny6410的WIN7下的USB下載軟件。

    發現了libusb這個庫可以用作無驅USB開發,就是說根本不需要了解Window驅動開發的知識就可以開發USB設備驅動,只需要了解一下USB的相關協議即可。Windows下我幾乎不用VS來寫程序,或者說我不懂MFC吧,呵呵,所示我用Qt來做界面。好了,進入正題。首先下載libusb-win32,下載地址:http://sourceforge.net/projects/libusb-win32/files/,注意選擇下載的文件是libusb-win32-bin-1.2.6.0.zip,這不是源碼,而是一些已經編譯好的庫。解壓之,里面有這么一些文件(夾):

    下面簡單介紹一下里面的東西是怎么用的。

    (1)bin文件夾。里面最重要的是inf-wizard.exe這個程序,當你的USB設備插到電腦上而沒有找到驅動程序時就可以通過這個程序來安裝通用的USB驅動。雙擊它,下一步,在里面找到你的USB設備,選中后下一步,最后會彈出一個對話框讓你保存它生成驅動程序。這樣就有了驅動程序,但還沒有安裝,可以通過設備管理器來安裝,安裝成功后就可以通過libusb來編寫程序來訪問你的USB設備了。

    (2)examples文件夾。里面有兩個例程,一個簡單的,一個復雜的,參考里面的bulk.c例程就好了。

    (3)include文件夾。編寫程序時需要用到,一般放在你的工程目錄下。

    (4)lib文件夾。里面是一些已經編譯好的庫,有borland版本的,有VC++版本的,有x64位版本的,最重要的是還有gcc版本,這里用到的就是gcc版本的,該版本可以在Qt上使用。

    下面開始介紹怎么在Qt下使用該庫。
  • 新建一個Qt工程

  • 把gcc版本的庫文件libusb.a復制到工程目錄下(可以放在其他目錄),在.pro文件中追加如下一行(路徑根據自己的情況修改):

  • LIBS+=“F:/Qt/pratise/libusb-test/libusb/libusb.a”

    這樣就可以在鏈接時找到所需的函數。

  • 把上面所說的include文件夾下lusb0_usb.h文件復制到工程目錄下。

  • 編寫一個測試文件,我這里寫的比較簡單,程序的功能是只列出我的USB設備,如下:

  • 復制代碼

    1 #include “testlibusb.h”
    2 #include “lusb0_usb.h”
    3
    4 USB::USB()
    5 {
    6 //usb_set_debug(250);
    7 usb_init(); /* initialize the library /
    8 usb_find_busses(); / find all busses /
    9 usb_find_devices(); / find all connected devices */
    10
    11 my_usb_get_device_list();
    12
    13 resize(320, 240);
    14 }
    15
    16
    17 void USB::my_usb_get_device_list(void)
    18 {
    19 struct usb_bus *bus;
    20 struct usb_device dev;
    21
    22 for (bus = usb_get_busses(); bus; bus = bus->next) {
    23 for (dev = bus->devices; dev; dev = dev->next) {
    24 / for specified device
    25 if (dev->descriptor.idVendor == MY_VID
    26 && dev->descriptor.idProduct == MY_PID)
    27 {
    28 return usb_open(dev);
    29 }
    30 */
    31
    32 qDebug(“VID:VID = %x:%x\n”, dev->descriptor.idVendor, dev->descriptor.idProduct);
    33
    34 }
    35 }
    36
    37 }
    復制代碼

    好了,運行程序,效果:

    最后一行打印出來的正是Tiny6410的USB設備號。

    注意:

    這只能列出安裝了inf-wizard.exe生成的驅動程序的USB設備。一開始的時候我沒接上Tiny6410,程序沒輸出,插上一個U盤,還是沒輸出,以為是程序或者這個庫有問題,糾結了一會,后來靈光一閃,插上開發板試試吧,果然成功了,程序運行結果就如上面所示。繼續學習USB,過2天USB開發板到了就開始實戰。

    總結

    以上是生活随笔為你收集整理的libusb-win32的使用方法的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。