作為裝置開發者, 一般需要讓裝置與上位機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:windows下安裝方法:wiki/libusb-win32
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...