關於libusb win32開發的經驗

2021-06-29 01:27:52 字數 1071 閱讀 8798

作為裝置開發者, 一般需要讓裝置與上位機pc通訊, 我們往往考慮採用以下幾種介面: rs232, usb, ethernet.

現在在pc機上已經很難見到rs232的介面, 而ethernet也需要做特殊的配置, usb大多成為我們的首選. 對於資料偏少的應用, 我們可以利用usb虛擬串列埠的方式來完成這樣的任務, 虛擬串列埠的驅動和例項, 對於下位機來說也非常常見. 有個問題: 很多應用無法用虛擬串列埠的方式來得到滿足, 只能按照usb的方式來解決問題. 這個時候, 我們只好針對usb進行程式設計. 對於複雜的驅動程式設計, 大多數程式設計師往往望而卻步. 不過總有其他簡單的方法解決問題. 這裡, 我們介紹乙個usb通訊庫: libusb.

libusb是乙個針對usb通訊的庫. 使用它, 你不需要知道作業系統的細節, 你只需要對usb有足夠的了解即可. 它也不需要你寫驅動, 所有的工作都可以在使用者態完成. 使用方法很簡單, 這裡有乙個示例:

, 是不是很簡單?

libusb自己帶有乙個核心驅動, 名字叫libusb0.sys, 放在windowssystem32drivers裡面. 使用者程式呼叫libusb0.dll, dll會把任務交由驅動來完成. 這樣保證使用者態就能夠完成usb通訊的作業.

libusb現在有好幾個版本. 主頁面在這裡:

因為我們一般是進行工程應用, 選擇相對穩定的版本: libusb-0.1.

平台在windows下的話, 我們採用libusb-win32:

wiki/libusb-win32

windows下安裝方法:

wiki/libusb-win32#installation

裡面有2種安裝方式, filter driver installation 和 device driver installation, 前面乙個可以說是開發環境, 後面可以說是發布驅動本身. 我們因為是做系統, 選擇前面乙個方式, 省得麻煩.

這裡有比較詳細的文件:

libusb-win32

libusb-1.0 api reference:

開發過程中有超時問題的原因:

libusb win32 編譯配置

編譯配置 修改工程libwdi 中config.h 的原工程的路徑 ifndef libusb0 dir define libusb0 dir z packages libusb win32 define libusb0 dir e code libusb win32 bin 1.2.6.0 end...

libusb win32學習筆記(二)

當完成配置工作後,就可以進行 的編寫 需要了解一些基本的usb協議的知識 對於乙個庫的使用,其幫助文件是非常重要的,可以去找libusb win32開發 文件 接下來分析一下使用bulk 進行資料傳輸的 編寫 時,首先要確定 idvendor 和idproduct 接著要確定 bulk 端點的輸入輸...

c 記錄 編譯libusb win32過程

參考 wdk編譯libwdi libwdi 編譯安裝 libusb win32 在windows7上使用vs2010編譯過程 libusb win32 win7 vs2010編譯配置過程.doc 建立libusb win32編譯環境,及快速除錯方法 已結帖 用vs開啟安裝目錄 project lib...