0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

英创信息技术如何实现WinCE系统中USB设备自动检测概述

英创信息技术 来源:英创信息技术 作者:英创信息技术 2019-11-18 09:44 次阅读

英创公司ARM9系列工控主板预装正版WinCE操作系统,提供标准USB接口,本文介绍如何在应用程序中判断USB存储设备的插入和移出操作。

方法一:思路是在应用程序创建一个线程,在线程里循环定时查询系统中是否存在USB存储设备,可以通过读取系统注册表或调用 API函数来实现,下面是通过API函数查询USB存储设备的程序片段。

STOREINFO StoreInfo;

hDevice = FindFirstStore( &StoreInfo );

if( INVALID_HANDLE_VALUE != hDevice )

{

do

{

// 判断是否为USB存储设备

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

{

// 如果查找到USB存储设备,则打印信息到调试串口

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

StoreInfo.szDeviceName ));

}

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

}

方法二:上面的方法在效率和实时性方面都不能令人满意,通常只用作检测U盘是否已接入到系统中,如果要实时的检测U盘的插入,移出操作,推荐使用下面提出的方法。

当USB设备插入或从系统中移出时,系统会产生WM_DEVICECHANGE消息,应用程序只需要处理这个消息就可以方便的判断U盘的插入和移出操作,我们需要关心WM_DEVICECHANGE消息wParam参数的两个取值:

DBT_DEVICEARRIVAL // 设备插入

DBT_DEVICEREMOVECOMPLETE // 设备移出

(WM_DEVICECHANGE消息更详细的信息,请参考MSDN WM_DEVICECHANGE Message http://msdn.microsoft.com/en-us/library/aa363480(VS.85).aspx)

值得注意的是当网络设备插入和移出时,也会触发这个消息,这样就会对判断是否为USB设备产生影响,不过,在WM_DEVICECHANGE消息的lParam参数中保存了设备的相关信息,对设备类型进行判断,只需要获得DEV_BROADCAST_VOLUME结构中的dbcv_flags的值,当它的值为DBTF_INET时,表示产生此消息的设备是网络设备,它的值等于DBTF_MEDIA时,表示产生消息的是媒体设备。对WM_DEVICECHANGE消息了解后,就可以利用它,在程序中实时检测USB设备的插入和移出了。下面是节略的程序片段。

// 窗口回调函数中,当系统消息为WM_DEVICECHANGE时,调用此函数

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存储设备

{

switch( wParam )

{

case DBT_DEVICEARRIVAL: // USB存储设备插入

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

break;

case DBT_DEVICEREMOVECOMPLETE: // USB存储设备移出

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

break;

}

}

return 0;

}

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式主板
    +关注

    关注

    7

    文章

    6064

    浏览量

    34604
收藏 人收藏

    评论

    相关推荐

    完整的传感器与自动检测技术演示教程 PPT下载

    ``传感器与自动检测技术演示教程 PPT下载628页 17M 传感器与自动检测技术演示教程.rar``
    发表于 10-30 09:17

    光电测径仪在自动检测的应用

    的一个组成部分,光电测径仪即是自动检测的一种,是用于检测外径尺寸的设备。  近年来,光电测径仪发展很快,主要表现在:  1、检测
    发表于 08-28 09:15

    用于自动检测的板测宽仪

    在生产中不可避免会产生倾斜、跳动、侧移等影响测量的问题,为此钢板测宽仪采用补偿功能,通过软件计算等实现高精度的宽度尺寸测量。  主要特征  随着检测及传感器技术、电子信息技术、计算机
    发表于 12-14 10:26

    伺服电机位置自动检测霍尔元件

    自动检测管理方法取代传统的企业人工霍尔检测方法,而霍尔元件安装位置的自动检测信息技术正是由于其高效性和实用性智慧。它具有精度高、精度高的优点,具有较高的实用价值。
    发表于 06-30 10:28

    请问怎么实现插孔自动检测电路的设计?

    如何实现插孔自动检测电路的设计?自动检测插孔的基本原理是什么?
    发表于 04-09 06:11

    请问电路板的自动检测技术有哪些?

    请问电路板的自动检测技术有哪些?
    发表于 04-22 06:04

    自动检测技术课件

    自动检测技术》是自动化专业一门专业基础课,是一门必选课,它是后续课程的重要基础,主要讲述工业参数的自动检测技术。本电子教案为PPT课件。本
    发表于 06-14 19:44 0次下载

    雷达故障自动检测系统

    本文介绍了雷达故障自动检测系统设计。对雷达故障自动检测系统提出了总体设计任务和目标、构成、功能、性能、技术指标。对雷达
    发表于 07-15 10:41 26次下载

    自动检测系统原理应用和发展状况的研究

    自动检测系统原理应用和发展状况的研究 介绍了自动检测技术的发展现状及其在性能检测和故障诊断方面应用的必要性和良好前景;讨论了现代自
    发表于 05-19 08:57 3567次阅读
    <b class='flag-5'>自动检测</b><b class='flag-5'>系统</b>原理应用和发展状况的研究

    CAN总线在粮情自动检测系统中的应用

    CAN总线在粮情自动检测系统中的应用 介绍基于CAN的粮情自动检测系统的设计,着重讨论了利用CAN总线进行通信的通信规程。    关键词:粮情;
    发表于 05-26 16:20 993次阅读
    CAN总线在粮情<b class='flag-5'>自动检测</b><b class='flag-5'>系统</b>中的应用

    Maxim高速USB模拟开关,可对便携式设备进行自动检测

    Maxim高速USB模拟开关,可对便携式设备进行自动检测 Maxim推出高速USB模拟开关MAX14550E,器件带有USB主机充电器识别
    发表于 12-09 08:46 891次阅读

    基于PXI和SCXI板卡系统的空调自动检测和故障诊断

    一、系统概述系统主要用于对空调设备的关键器件进行自动检测和故障诊断。该系统
    发表于 07-02 11:31 1280次阅读
    基于PXI和SCXI板卡<b class='flag-5'>系统</b>的空调<b class='flag-5'>自动检测</b>和故障诊断

    ZIGBEE技术在航空电源车自动检测上的应用

    摘要:介绍了zigbee技术的概念、特点,并给出了基于zigbee技术的航空电源车自动检测与控制系统.通过对zigbee技术在航空电源车
    发表于 03-23 13:15 54次下载

    WinCE系统USB设备自动检测实现

    英创公司ARM9系列工控主板预装正版 WinCE 操作系统,提供标准USB接口,本文介绍如何在应用程序中判断USB存储设备的插入和移出操作。
    发表于 06-09 15:48 51次下载

    基于USB和LabVIEW的ECU自动检测系统的设计

    本文描述了一直基于USB和LabVIEW的ECU自动检测系统的设计方案。
    发表于 03-23 14:04 11次下载