<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > WinCE的USB Camera流接口驅動(dòng)開(kāi)發(fā)

WinCE的USB Camera流接口驅動(dòng)開(kāi)發(fā)

作者: 時(shí)間:2016-10-08 來(lái)源:網(wǎng)絡(luò ) 收藏

DWORD CAM_Init(LPCTSTR pContext,LPCVOIDIp VBusContext)

其中,pContext是系統自動(dòng)傳入的字符串內容,也是上面的鍵名,即[HKEY_LOCAL_MACHINEDriversActiveN];CAM_Init要完成的就是在此鍵下讀出設備上下文的指針,將其作為DWORD返回;IpvBusContext不用考慮。

在USBDeviceAttach()中,最后要完成的工作是在此函數內調用USBD模塊的RegisterNotificationRoutine函數登記注冊DeviceNotify函數。這個(gè)DeviceNotify函數是必需的,在設備被移走后,系統調用這個(gè)函數完成相應的善后工作。

BOOL WINAPI DeviceNotify(LPVOID lpvNotifyPa-rameter DWORD dwCode.LPDWORD dwInf01.LPDW0RDdwlnfo2.LPDWORD dwlnfo3.LPDWORD dwlnfo4)

其中,IpvNotifyParameter是設備的上下文句柄,在RegisterNoticationRoutine中作為參數傳入;dwCode是系統調用此函數的原因,如設備被移走,dwcode的值就為USB_CLOSE_DEVICE,相應的,用戶(hù)進(jìn)行卸載DLL工作;dwInfol,…,dwInfo4沒(méi)有使用。

自此,系統在USBDeviceAttach中完成對所加USB外設的驅動(dòng)加載。當有用戶(hù)調用CreateFile函數,系統會(huì )將用戶(hù)填入CreateFile()的參數值,直接傳到CAM_Open()。

DWORD CAM_Open(DWORD hDeviceContext,DWORDAccessCode,DWORD ShareMode)

其中,hDeviceContext是驅動(dòng)上下文句柄,由系統自動(dòng)填充;AccessCode是訪(fǎng)問(wèn)模式,ShareMode是共享模式,均由CreateFile()傳遞過(guò)來(lái);CAM_Open的工作是將hDe-viceContext以DWORD的形式返回,再作為CreateFile()的句柄值返回給用戶(hù)。當用戶(hù)調用CloseHandle()時(shí),系統將直接調用CAM_Close(),用于關(guān)閉一個(gè)驅動(dòng)程序。

B00L CAM_Close(DWORD hOpenContext)

其中,hOpenContext是設備驅動(dòng)的引用事例句柄,由CAM_Open創(chuàng )建。本驅動(dòng)中,所有對USB Camera的操作均通過(guò)IOControl()映射到CAM_IOControl來(lái)完成。下面是CAM_IOControl的部分源碼分析:

由于本驅動(dòng)是針對USBCamera的,因此CAM_Write、CAM_Read、CAM_PowerUp、CAM_PowerDown并沒(méi)有內容;但是只要用戶(hù)調用WriteFile,系統就將映射到CAM_Write。其他函數類(lèi)似。通常,Camera對圖像的壓縮采用標準是MJPEG算法。在Zc030x上正是采用這一算法完成對數據壓縮的。只要在驅動(dòng)上增加MJPEG的解碼算法,還原壓縮數據,就可以正確顯示圖像了。至此,整個(gè)USB Camera的驅動(dòng)編寫(xiě)工作完成。經(jīng)過(guò)實(shí)驗驗證,已經(jīng)實(shí)現了最高為25幀/s,大小為320×240的圖片的傳輸。

結 語(yǔ)

本文介紹了WinCE5.0下USB設備驅動(dòng)框架,結合USB Camera的驅動(dòng)開(kāi)發(fā)實(shí)例說(shuō)明了在USB驅動(dòng)框架中驅動(dòng)數據的流動(dòng)方向,并已在中星微公司的301PLUS和303這兩個(gè)系列的攝像頭上得到成功運用和實(shí)踐。所采用的程序設計方法及思想,對其他類(lèi)似嵌入式系統軟件的設計也有較高的參考價(jià)值。


上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞:

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>