0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

英創(chuàng)信息技術(shù)如何實現(xiàn)WinCE系統(tǒng)中USB設(shè)備自動檢測概述

英創(chuàng)信息技術(shù) ? 來源:英創(chuàng)信息技術(shù) ? 作者:英創(chuàng)信息技術(shù) ? 2019-11-18 09:44 ? 次閱讀

英創(chuàng)公司ARM9系列工控主板預(yù)裝正版WinCE操作系統(tǒng),提供標準USB接口,本文介紹如何在應(yīng)用程序中判斷USB存儲設(shè)備的插入和移出操作。

方法一:思路是在應(yīng)用程序創(chuàng)建一個線程,在線程里循環(huán)定時查詢系統(tǒng)中是否存在USB存儲設(shè)備,可以通過讀取系統(tǒng)注冊表或調(diào)用 API函數(shù)來實現(xiàn),下面是通過API函數(shù)查詢USB存儲設(shè)備的程序片段。

STOREINFO StoreInfo;

hDevice = FindFirstStore( &StoreInfo );

if( INVALID_HANDLE_VALUE != hDevice )

{

do

{

// 判斷是否為USB存儲設(shè)備

if( 0 == _tcscmp( StoreInfo.szStoreName, _T(‘USB Hard Disk Drive’) ) )

{

// 如果查找到USB存儲設(shè)備,則打印信息到調(diào)試串口

RETAILMSG( 1, (TEXT(‘USB%shas been inserted\n’ ) ,

StoreInfo.szDeviceName ));

}

}while( FindNextStore( hDevice, &StoreInfo ) );

}

方法二:上面的方法在效率和實時性方面都不能令人滿意,通常只用作檢測U盤是否已接入到系統(tǒng)中,如果要實時的檢測U盤的插入,移出操作,推薦使用下面提出的方法。

當USB設(shè)備插入或從系統(tǒng)中移出時,系統(tǒng)會產(chǎn)生WM_DEVICECHANGE消息,應(yīng)用程序只需要處理這個消息就可以方便的判斷U盤的插入和移出操作,我們需要關(guān)心WM_DEVICECHANGE消息wParam參數(shù)的兩個取值:

DBT_DEVICEARRIVAL // 設(shè)備插入

DBT_DEVICEREMOVECOMPLETE // 設(shè)備移出

(WM_DEVICECHANGE消息更詳細的信息,請參考MSDN WM_DEVICECHANGE Message http://msdn.microsoft.com/en-us/library/aa363480(VS.85).aspx)

值得注意的是當網(wǎng)絡(luò)設(shè)備插入和移出時,也會觸發(fā)這個消息,這樣就會對判斷是否為USB設(shè)備產(chǎn)生影響,不過,在WM_DEVICECHANGE消息的lParam參數(shù)中保存了設(shè)備的相關(guān)信息,對設(shè)備類型進行判斷,只需要獲得DEV_BROADCAST_VOLUME結(jié)構(gòu)中的dbcv_flags的值,當它的值為DBTF_INET時,表示產(chǎn)生此消息的設(shè)備是網(wǎng)絡(luò)設(shè)備,它的值等于DBTF_MEDIA時,表示產(chǎn)生消息的是媒體設(shè)備。對WM_DEVICECHANGE消息了解后,就可以利用它,在程序中實時檢測USB設(shè)備的插入和移出了。下面是節(jié)略的程序片段。

// 窗口回調(diào)函數(shù)中,當系統(tǒng)消息為WM_DEVICECHANGE時,調(diào)用此函數(shù)

LRESULT USBDetect( HWND hWnd, UINT wMsg, WPARAM wParam, LPARAM lParam )

{

PDEV_BROADCAST_VOLUME dbvDev = (PDEV_BROADCAST_VOLUME)lParam;

if( dbvDev-》dbcv_flags & DBTF_MEDIA ) // 判斷是否為USB存儲設(shè)備

{

switch( wParam )

{

case DBT_DEVICEARRIVAL: // USB存儲設(shè)備插入

RETAILMSG(1, (TEXT( ‘USBDisk%c is inserted\n’), dbvDev-》dbcv_name[0]));

break;

case DBT_DEVICEREMOVECOMPLETE: // USB存儲設(shè)備移出

RETAILMSG( 1, (TEXT( ‘USBDisk%c is remove\n’), dbvDev-》dbcv_name[0] ));

break;

}

}

return 0;

}

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 嵌入式主板
    +關(guān)注

    關(guān)注

    7

    文章

    6085

    瀏覽量

    35336
收藏 人收藏

    評論

    相關(guān)推薦

    光電測徑儀在自動檢測的應(yīng)用

    的一個組成部分,光電測徑儀即是自動檢測的一種,是用于檢測外徑尺寸的設(shè)備?! 〗陙?,光電測徑儀發(fā)展很快,主要表現(xiàn)在:  1、檢測
    發(fā)表于 08-28 09:15

    用于自動檢測的板測寬儀

    在生產(chǎn)中不可避免會產(chǎn)生傾斜、跳動、側(cè)移等影響測量的問題,為此鋼板測寬儀采用補償功能,通過軟件計算等實現(xiàn)高精度的寬度尺寸測量?! ≈饕卣鳌 ‰S著檢測及傳感器技術(shù)、電子信息技術(shù)、計算機
    發(fā)表于 12-14 10:26

    伺服電機位置自動檢測霍爾元件

    自動檢測管理方法取代傳統(tǒng)的企業(yè)人工霍爾檢測方法,而霍爾元件安裝位置的自動檢測信息技術(shù)正是由于其高效性和實用性智慧。它具有精度高、精度高的優(yōu)點,具有較高的實用價值。
    發(fā)表于 06-30 10:28

    請問怎么實現(xiàn)插孔自動檢測電路的設(shè)計?

    如何實現(xiàn)插孔自動檢測電路的設(shè)計?自動檢測插孔的基本原理是什么?
    發(fā)表于 04-09 06:11

    自然圖像的對象自動檢測和提取

    引入基于例子的摳圖模型,實現(xiàn)對自然圖像的自動訓(xùn)練和檢測,采用視覺單詞的層次空間直方圖改進特征包分類檢測技術(shù),提高
    發(fā)表于 04-01 09:11 ?22次下載

    自動檢測技術(shù)課件

    自動檢測技術(shù)》是自動化專業(yè)一門專業(yè)基礎(chǔ)課,是一門必選課,它是后續(xù)課程的重要基礎(chǔ),主要講述工業(yè)參數(shù)的自動檢測技術(shù)。本電子教案為PPT課件。本
    發(fā)表于 06-14 19:44 ?0次下載

    雷達故障自動檢測系統(tǒng)

    本文介紹了雷達故障自動檢測系統(tǒng)設(shè)計。對雷達故障自動檢測系統(tǒng)提出了總體設(shè)計任務(wù)和目標、構(gòu)成、功能、性能、技術(shù)指標。對雷達
    發(fā)表于 07-15 10:41 ?26次下載

    自動檢測系統(tǒng)原理應(yīng)用和發(fā)展狀況的研究

    自動檢測系統(tǒng)原理應(yīng)用和發(fā)展狀況的研究 介紹了自動檢測技術(shù)的發(fā)展現(xiàn)狀及其在性能檢測和故障診斷方面應(yīng)用的必要性和良好前景;討論了現(xiàn)代自
    發(fā)表于 05-19 08:57 ?3795次閱讀
    <b class='flag-5'>自動檢測</b><b class='flag-5'>系統(tǒng)</b>原理應(yīng)用和發(fā)展狀況的研究

    CAN總線在糧情自動檢測系統(tǒng)的應(yīng)用

    CAN總線在糧情自動檢測系統(tǒng)的應(yīng)用 介紹基于CAN的糧情自動檢測系統(tǒng)的設(shè)計,著重討論了利用CAN總線進行通信的通信規(guī)程。 &n
    發(fā)表于 05-26 16:20 ?1232次閱讀
    CAN總線在糧情<b class='flag-5'>自動檢測</b><b class='flag-5'>系統(tǒng)</b><b class='flag-5'>中</b>的應(yīng)用

    Maxim高速USB模擬開關(guān),可對便攜式設(shè)備進行自動檢測

    Maxim高速USB模擬開關(guān),可對便攜式設(shè)備進行自動檢測 Maxim推出高速USB模擬開關(guān)MAX14550E,器件帶有USB主機充電器識別
    發(fā)表于 12-09 08:46 ?958次閱讀

    基于PXI和SCXI板卡系統(tǒng)的空調(diào)自動檢測和故障診斷

    一、系統(tǒng)概述系統(tǒng)主要用于對空調(diào)設(shè)備的關(guān)鍵器件進行自動檢測和故障診斷。該系統(tǒng)
    發(fā)表于 07-02 11:31 ?1405次閱讀
    基于PXI和SCXI板卡<b class='flag-5'>系統(tǒng)</b>的空調(diào)<b class='flag-5'>自動檢測</b>和故障診斷

    WinCE系統(tǒng)USB設(shè)備自動檢測實現(xiàn)

    創(chuàng)公司ARM9系列工控主板預(yù)裝正版 WinCE 操作系統(tǒng),提供標準USB接口,本文介紹如何在應(yīng)用程序
    發(fā)表于 06-09 15:48 ?51次下載

    基于USB和LabVIEW的ECU自動檢測系統(tǒng)的設(shè)計

    本文描述了一直基于USB和LabVIEW的ECU自動檢測系統(tǒng)的設(shè)計方案。
    發(fā)表于 03-23 14:04 ?11次下載

    創(chuàng)信息技術(shù)WinCE主板與STM32多功能模塊通訊介紹

    ,STM32F103RCT6通過其USB Device接口與創(chuàng)工控主板連接通訊,STM32在WinCE系統(tǒng)中被當做一個串口
    的頭像 發(fā)表于 02-06 11:12 ?2084次閱讀

    創(chuàng)信息技術(shù)WinCE文件系統(tǒng)測試及故障分析簡介

    WINCE文件系統(tǒng)的偶發(fā)故障一直是WINCE系統(tǒng)最為棘手的問題,盡管出現(xiàn)故障的幾率不高,但對設(shè)備的穩(wěn)定運行造成嚴重影響。為了保證基于
    的頭像 發(fā)表于 02-07 11:15 ?1458次閱讀
    <b class='flag-5'>英</b><b class='flag-5'>創(chuàng)</b><b class='flag-5'>信息技術(shù)</b><b class='flag-5'>WinCE</b>文件<b class='flag-5'>系統(tǒng)</b>測試及故障分析簡介