如何强制Windows删除或重新识别USB设备?

更新 Apr 4, 2022

适用于

硬件

  • USB-6501
  • cDAQ-9132
  • cDAQ-9133
  • cDAQ-9138
  • cDAQ-9139
  • cDAQ-9135

驱动

  • NI-DAQmx

其他

视窗

问题详述

我的USB设备偶尔会丢失与计算机的连接,我必须断开连接,然后重新连接才能正常工作。为什么会发生这种情况?同时如何让Windows重新检测设备,而无需断开设备连接?

解决方案

当设备断电但计算机依旧通电时会出现此问题。例如,当计算机进入待机或省电模式时,通常会关闭USB端口的电源。此外,当计算机从休眠状态返回时,也会发生这种情况。在以上任何一种情况下,计算机都不会重新检测到设备,因此您将无法与之通信。

发生这种情况时,请按照以下说明在Windows中重新检测设备:

  1. 从Microsoft安装DevCon应用程序。 DevCon应用程序是一个命令行应用程序,可用作设备管理器的替代方法。使用DevCon,您可以启用,禁用,重新启动,更新,删除和查询单个设备或设备组。 你可以在这里下载DevCon

  2. 通过转到Start » Run,键入devmgmt.msc打开Windows设备管理器,然后单击“ 确定”按钮。

  3. 您现在需要确定故障设备连接到哪个USB集线器(端口)。因此,请展开列表底部的“Universal Serial Bus controllers组。

  4. 依次双击每个USB Root Hub条目,然后单击Power选项卡以查看您的设备是否已列出。

  5. 找到列出设备的集线器后,单击“Details选项卡,然后从下拉菜单中选择“Device Instance Id”。如果您运行的是Windows 7,请选择“Device Instance Path而不是“Device Instance Id”。在第一个和第二个\符号之间记录列表中显示的名称,例如ROOT_HUB20。

  6. 接下来,通过转到“Start » Run ,输入cmd ,然后单击“ 确定”按钮来启动命令提示符。

  7. 在“Command Prompt窗口中,首先将目录更改为包含您下载的devcon.exe文件的文件夹。如果您使用的是64位操作系统,则需要确保调用64位版本的devcon.exe 。设置正确的目录后,输入下列命令,将ROOT_HUB20替换为您在步骤4中记录的内容。
    devcon restart * ROOT_HUB20 *


    注意: 如果您的用户界面设备(如鼠标或键盘)或任何其他USB设备(如USB网络适配器)与您尝试重新检测的USB设备位于同一根集线器上,那么在执行重启时您将失去鼠标或键盘的控制。

  8. 现在,Windows将可以删除并重新检测集线器和连接到它的任何USB设备,从而可以重新控制它们。如果这不起作用,您可能在步骤4中选择了错误的集线器。重复步骤3 - 6直到重新启动成功。

  9. 一旦知道设备连接到哪根集线器,就可以使用 System Exec VI 在LabVIEW中以编程方式实现此解决方案 ,它允许您将命令传递到命令提示符。该System Exec VI可以在库和可执行文件选板中找到。