libusb在VC6.0下的開(kāi)發(fā)_第1頁(yè)
libusb在VC6.0下的開(kāi)發(fā)_第2頁(yè)
libusb在VC6.0下的開(kāi)發(fā)_第3頁(yè)
libusb在VC6.0下的開(kāi)發(fā)_第4頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)專心-專注-專業(yè)精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)由于要寫一個(gè)USB下載固件的東西,主要配合更新固件功能,搜集了一些資料,放到了博客里,方便以后查閱。1. 下載LIBUSB-WIN32。安裝libusb-win32-filter-bin-0.1.12.1.exe,測(cè)試用2. 通過(guò)VC創(chuàng)建一個(gè)DIALOG。3. 設(shè)置好界面4. 正式開(kāi)始USB設(shè)置拷貝libusb0.dll、libusb.lib、usb.h到剛才創(chuàng)建的目錄下。打開(kāi)VC-Setting-Link下,選擇generate項(xiàng),在library module下填寫

2、”libusb.lib “,其實(shí)主要添加libusb.lib。5 . program.#include /* usb.h這個(gè)頭文件是要包括的,里面包含了必須要用到的數(shù)據(jù)結(jié)構(gòu) */* 我們將一個(gè)設(shè)備的屬性用一個(gè)結(jié)構(gòu)體來(lái)概括 */typedef structstruct usb_device* udev;usb_dev_handle* device_handle;/* 這里可以添加設(shè)備的其他屬性,這里只列出每個(gè)設(shè)備要用到的屬性 */ device_descript;/* 用來(lái)設(shè)置傳輸數(shù)據(jù)的時(shí)間延遲 */#define USB_TIMEOUT 10000/* 廠家ID 和產(chǎn)品 ID */#defin

3、e VENDOR_ID 0 xffff#define PRODUCT_ID 0 xffff/* 這里定義數(shù)組來(lái)保存設(shè)備的相關(guān)屬性,DEVICE_MINOR可 以設(shè)置能夠同時(shí)操作的設(shè)備數(shù)量,用全局變量的目的在于方便保存屬性 */#define DEVICE_MINOR 16int g_num;device_descript g_list DEVICE_MINOR ;/發(fā)現(xiàn)DEVICE。發(fā)現(xiàn)一個(gè)奇怪的問(wèn)題,VMWARE中不能運(yùn)行,但是到真實(shí)的PC就可以,看來(lái)我要啟動(dòng)到PC下開(kāi)發(fā)了。void : OnButtonDevie()/ TODO: Add your control notification

4、 handler code herestruct usb_bus *bus;struct usb_device *dev;g_num = 0;usb_init();usb_set_debug(3);usb_find_busses();usb_find_devices();/* */for (bus = usb_get_busses(); bus; bus = bus-next) for (dev = bus-devices; dev; dev = dev-next) if(dev-descriptor.idVendor=VENDOR_ID& dev-descriptor.idProduct =

5、 PRODUCT_ID) /* */if (g_num DEVICE_MINOR) g_listg_num.udev = dev;g_num +;m_nInfo.Format(”Founded %d n”,g_num);UpdateData(FALSE);好了,至此,就可以用USB其他的函數(shù)完成讀寫。6. 關(guān)鍵函數(shù)使用usb_control_msg- unsigned char Outbuf8;unsigned char request=0 x01;Outbuf0 = 1;Outbuf1 = 2;Outbuf2 = 3;Outbuf3 = 0 x33;Outbuf4 = 0 x44;Outbu

6、f5 = 0 x55;Outbuf6 = 0 x66;Outbuf7 = 0 x77;/ usb_control_msg先發(fā)送setup包,然后根據(jù)發(fā)送緩沖區(qū)的大小,發(fā)送in或out包unsigned charnbytes = usb_control_msg(M_USBhandle,USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_ENDPOINT_OUT ,request,0 x00,0 x00,(char *)Outbuf, 0 x08,5000);usb_control_msg將會(huì)引起主機(jī)向從機(jī)發(fā)送 setup事件,setup傳輸?shù)臄?shù)據(jù)階段就是usb_control_msg函數(shù)中的參數(shù),另外,setup事物之后,主機(jī)會(huì)向從機(jī)發(fā)送 out事物,根據(jù)Outbuf的數(shù)據(jù)和 定義的size來(lái)發(fā)送數(shù)據(jù)usb_interrupt_wri

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論