我該如何強制Windows刪除並重新偵測USB設備?

更新 Apr 4, 2022

產品資訊

硬件

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

驅動程式

  • NI-DAQmx

操作系統

  • Windows

問題敘述

我的USB設備偶爾會與電腦失去連結,我必須拔除儀器並與電腦重新連接後才能正常工作。為什麼會發生這種情況,以及如何在不拔除USB設備的狀況下讓Windows重新偵測設備?

解決方案

當連接電腦的設備失去電源供應,但電腦正常供電時會產生此問題。例如,當電腦進入待機或省電模式時,它通常會關閉USB的電源供應。此外,當電腦從休眠狀態醒來時,也會發生這種情況。在兩種情況下,電腦都不會重新偵測設備,因此您將無法操作USB設備。

當發生這種情況時,請按照以下的指示在Windows中重新偵測設備:

  1. 從Microsoft網站裡安裝DevCon工具。 DevCon是一個指令列工具(command-line utility),它有相當於裝置管理員(Device Manager)的功能。透過DevCon您可以啟用(enable)、禁用(disable)、重新啟動(restart)、更新(update)、移除(remove)和查詢(query)單一設備或設備組。 你可以在這裡下載DevCon

  2. 在Windows的開始選單滑鼠右鍵點擊執行(R) ,輸入devmgmt.msc之後單擊確定按鈕打開Windows裝置管理員。

  3. 確認有問題的設備連接到哪個USB Root Hub(port)。為此,請展開"通用序列匯流排控制器"

  4. 要查看您的設備是在哪個USB孔,請依次雙擊每個USB Root Hub選項,然後點擊開啟/關閉以查看您的設備是否已列出。

  5. 找到列出設備的USB Root Hub後,點擊詳細資料選項,然後從下拉式選單中選擇裝置例項識別碼(Device Instance Id)。如果您使用Windows 7,請選擇裝置例項路徑(Device Instance Path)。記錄下在第一個和第二個"\"符號之間顯示的名稱,例如ROOT_HUB20。

  6. 接下來,在Windows的開始選單滑鼠右鍵點擊執行(R) ,輸入cmd之後單擊確定按鈕打開命令提示字元。

  7. 命令提示字元視窗中,首先將路徑檔改為含有您下載的devcon.exe資料夾。如果您使用的是64位元的作業系統,則需要確保您呼叫的是64位元版本的devcon.exe 。指引到正確的目錄後,接著輸入以下命令(將ROOT_HUB20替換為您在步驟5中記錄的內容),然後按下Enter。
    devcon restart * ROOT_HUB20 *


    注意: 如果介面操控設備(如滑鼠或鍵盤)或任何其他USB設備(如USB網路卡)與您嘗試重新偵測的USB設備位於同一個USB Root Hub上,那麼您的滑鼠或鍵盤在重啟時會與電腦失去與連結。

  8. Windows將移除並重新偵測集線器和連接到它的任何USB設備,並在此過程中重新啟用它們。如果上述步驟沒有解決USB無法重新偵測的問題,您可能在步驟4中選擇了錯誤的集線器。重複步驟3 - 6直到重新啟動成功。

  9. 一旦知道設備連接到哪個USB Root Hub後,就可以在 LabVIEW使用System Exec VI 以程式化的方式使用此解決方案 System Exec VI允許您將命令傳遞到命令提示字元。該VI 可以在Block Diagram裡的Libraries and Executables Palette裡找到