1. 請教一下,可以在電腦Ubuntu上寫C語言程序,然後通過讀取usb的引腳從而控制電子元件嗎
可以,僅記住,linux的一切都是文件,對文件的操作也就是對設備的操作。
比如我接上一個滑鼠,目錄下有對應設備文件(一般是在/dev/input/mouse1),我可以對其進行IO操作,從而檢測滑鼠位移,點擊等。
2. windows電腦無法識別usb設備怎麼辦
一、在排除USB存儲設備本身故障後,出現無法識別現象的原因一般是由以下幾個方面所造成的:
一是USB介面電壓不足。這種故障通常存在於移動硬碟身上,當把移動硬碟接在前置USB口上時就有可能發生系統無法識別出設備的故障,原因是移動硬碟
功率比較大要求電壓相對比較嚴格,前置的USB介面是通過線纜連接到機箱上的,在傳輸時便會消耗大掉的電壓,因此,在使用移動硬碟時,要注意盡量接在後置
主板自帶的USB介面上,否則也可以通過外接的電源適配器來提供單獨供電。當然,在一些老的主板上,必須要使用獨立供電才能供正常使用USB設備。
二是前置USB線接錯。當主板上的USB線和機箱上的前置USB介面對應相接時把正負接反就會發生這類故障,這也是相當危險的,因為正負接反很可能會
使得USB設備燒毀,嚴重還會燒毀主板。三是主板和系統的兼容性問題。這類故障中最著名的就是NF2主板與USB的兼容性問題。假如你是在NF2的主板上
碰到這個問題的話,則可以先安裝最新的nForce2專用USB2.0驅動和補丁、最新的主板補丁和操作系統補丁,還是不行的話嘗試著刷新一下主板的
BIOS一般都能解決。四是系統或BIOS問題。當你在BIOS或操作系統中禁用了USB時就會發生USB設備無法在系統中識別。解決方法是開啟與USB
設備相關的選項。
二、U盤插入電腦,提示「無法識別的設備」故障
維修思路:對於此現象,首先的一點說明U盤的電路基本正常,而只是跟電腦通信方面有故障,而對於通信方面有以下幾點要檢查:
(1)U盤介面電路,此電路沒有什麼特別元件就是兩根數據線D+
D-,所以在檢查此電路時只要測量數據線到主控之間的線路是否正常即可,一般都在數據線與主控電路之間會串接兩個小阻值的電阻,以起到保護的作用,所以要檢查這兩個電阻的阻值是否正常。
(2)時鍾電路,因U盤與電腦進行通信要在一定的頻率下進行,如果U盤的工作頻率和電腦不能同步,那麼系統就會認為這是一個「無法識別的設備」了。這時就要換晶振了。而實際維修中真的有很多晶振損壞的實例!
(3)主控,如果上述兩點檢查都正常,那就可以判斷主控損壞了。
三、Windows
XP操作系統下,系統提示已經找到新的硬體並且硬體正常被安裝可以使用,但無法找到快閃記憶體檔的盤符,且快閃記憶體檔的燈在不停的閃亮
故障分析:這種故障一般是由於非法操作所造成的,認為快閃記憶體檔是可以支持熱插拔的,於是在沒有正確刪除移動設備的情況下,直接進行了插拔操作,不正確的操作是導致快閃記憶體消失的根本原因。
故障排除:進入Windows
98系統,用滑鼠右擊「我的電腦」,選擇屬性進入「設備管理器」,在「磁碟驅動器」下看到比原來多了一個「Netac
Onlydisk」的設備,雙擊進入,在彈出的新窗口中看到了四個新的選項:「斷開」、「可刪除」、「同步數據傳輸」和「Int
13單元」,仔細觀察發現「可刪除」前面的選項是沒有打勾的。在「可刪除」選項前的空格內打入勾並單擊確定後重新啟動電腦。
故障小結:此故障依然是由於誤操作使用快閃記憶體檔導致的問題,可以看出由於不正常使用快閃記憶體檔而導致故障出現的機率是非常大的,因此大家在使用中一定要遵循規格,以保證快閃記憶體的正常使用。
四、可以認U盤,但打開時提示「磁碟還沒有格式化」但系統又無法格式化,或提示「請插入磁碟」,打開U盤裡面都是亂碼、容量與本身不相符等。
維修思路:對於此現象,可以判斷U盤本身硬體沒有太大問題,只是軟體問題而以了。
解決方法:找到主控方案的修復工具搞一下就可以了。這個就要大家自己看U盤的主控是什麼方案的來決定了。
U盤故障大概也就是這些主要問題了。而對於無法寫文件、不存儲等現象,一般都是FLASH性能不良或有壞塊而引起的。大家看完之後有沒有一個清晰的思路了呢。隨便說明一下,U盤不同於MP3,他不存在固件之說,但有些廠家把自己的軟體放到裡面,低格一下就會沒有的。
告訴大家一個非常簡單的方法,就是在碰到主控損壞或找不到相應的修復工具時,可以用U盤套件來重新搞一個新的U盤,方法就是把故障機的FLASH拆下
來,放到新的PCB板上就可以了。U盤套件包括(PCB帶主控(分1.1和2.0之分)及外殼一套),維修起來非常簡單,做數據恢復就更方便了
3. VB編寫與USB採集卡通信程序
用vb實現USB介面設備數據傳送
本文介紹了USB設備中的人機介面,HID設備與主機通信的要點與方式。詳細講解了在VB中調用相關APl函數的方法,並介紹了一種基於USB匯流排的數據採集系統的設計方案及開發方法,採用的是USB2.0協議。該系統主要是從設備的角度描述了人機介面設備通信,以及用來與主機進行數據交換的報告格式。應用程序可以使用任何能訪問API函數的編程語言,調用窗口函數並與USB設備實現通信。掌握USB設備與計算機通訊規程,實現USB設備的自動識別。為數據採集系統與計算機之間的通訊開辟了新的道路。
這幾年,隨著大量支持USB的個人電腦的普及,USB逐步成為PC機的標准介面已經是大勢所趨了。在主機(host)端,最新推出的PC機幾乎100%支持USB;而在外設(device)端,使用USB介面的設備也與日俱增,例如數碼相機、掃描儀、游戲桿、磁帶和軟碟機、圖像設備、列印機、鍵盤、滑鼠等。
二、Windows系統選擇USB驅動的過程
當Windows檢測到一個新的USB外設時,必須做的一件事情是找出應該使用哪個設備驅動應用軟體來與設備通信,然後載入選定的驅動。這是Windows設備管理器的工作,設備管理器使用類、設備安裝器和INF文件來找到這個匹配。
INF文件是一個文本文件,其中包括有利於Windows識別設備的信息。文件告訴Win-dows要使用什麼驅動、注冊表裡存儲什麼信息等。
三、Visual Basic與USB設備通信的設計與實現
使用VB語言訪問串列通信介面的方法。Windows在底層實現了和串列通信有關的很多復雜的工作,給程序員提供了一個相對比較容易掌握的編程介面。例如 Windows自動將所有接收到的字元放到接收緩沖區中,而所有發送的字元也都進入發送緩沖區。只要程序空閑,程序就可以讀取接收緩沖區獲得數據,或者向發送緩沖區發送數據。
1.主機尋找USB設備的過程
第一個被Windows支持的USB外圍設備類是人機介面設備。HID是 HUMANINTER-FACE DEVICE人機介面設備的英文縮寫。是指直接和人進行互動的設備。如滑鼠、鍵盤等。運行在WINDOWS98或其他更高的版本的操作系統的PC機,系統除了提供通用的USB設備的底層驅動以外,還單獨提供了一些HID設備的完整驅動,應用程序可以很容易地與操作系統內部的HID通訊。這樣使得符合HID 類的USB設備很容易開發與運行。也就是說,我們如果想實現一個USB的HID類設備,是不需要在Windows下開發自己的驅動程序的。HID不一定要是標準的外設類型,唯一的要求是交換的數據存儲在報文的結構內,設備固件必須支持報文的格式。任何工作在該限制之內的設備都可以成為一個HID,例如溫度計、電壓計、讀卡機等。
2.VB中調用API函數的過程
(1)聲明:下面是一個Visual Basic使用API函數WriteFile的聲明:可以利用這個涵數來寫數據到HID(也可以是文件和其他設備)中。Public Declare Function WriteFile Lib_「kernel32」_
(By Val hFile As Long,_ByReflpBuffer As Byte,_By Val nNumberOfBytes To Write As Long,_ByRef lpNumberOfBytesWritten As Long,_ByVal lpOvefiapped As Long)_As Long
(2)識別HID過程Public Declare Function HidD_GetHidGuid Lib_「hid.dll」_(ByRefHidGuid As GUID)As Long
3.Visual Basic數據過程
(1)讀數據到設備
Public Declare Function WriteFile Lib「kernel32」_(ByVal hFile As Long,_ByReflpBuffer As Byte_ByValnNumberOfBytesToWrite As Long,_ByRefnNumberOfBytcsWritten As Long,_ByVal lpOvefiapped As Long)_As Long
(2)從設備讀取數據Declare Function ReadFile Lib_「kernel32」_(ByValhFile As Long,_ByReflpBuffer As Byte,_ByValnNumberOfBytesToRead As Long,_ByReflpNumberOfBytesRead As Long,_lpOvefiapped As Long)_As Long
讀寫報文緩沖區時,第一個位元組是ReportID,其後是報文數據。報文緩沖區默認是八個報文,並且環狀排列。因為數據讀寫是發生在主機輪訓設備的時候,並不是由設備觸發產生硬體中斷,所以如不能及時讀寫,新的數據會覆蓋舊的數據,導致報文丟失。當數據讀寫頻繁時應使用特徵報文,它可以保證當報文數據沒有變化時,HID不會傳送新的數據。
當不再使用SetupDiGetClassDevs時,應用上述函數釋放其返回的數組hDevInfo。還有需要使用函數CloseHandle,它是一個非常通用的API函數,可以用於關閉通信。
四、結論
實際編程表明使用VB開發HID類USB設備是一條非常方便快捷的途徑,不需要編寫底層驅動,涉及到的API函數多是大家熟知的通用函數。但同時還必須注意到一點,HID類只支持控制傳輸與中斷傳輸。控制傳輸通常不用於數據的傳輸,而中斷傳輸的特點是保證最大延遲,也就是事務之間的時間。它沒有保證傳輸速率,而是保證每筆事務之間的時間不會超過最大延時。所以中斷傳輸適用於數據量不太大,但需要及時快速地傳送,實時性要求較高的場合。對於數據量比較大的傳輸,是不宜使用中斷傳輸的。因此HID設備應用的場合也必須根據該特點靈活使用。
4. 電腦無法識別usb設備怎麼辦如何解決
電腦無法識別USB設備原因:缺少USB驅動程序。
參考工具:
1.一台Windows10系統筆記本電腦。
2.一張含有Boot Camp支持文件(驅動程序整合包)的U盤。
解決方法如下:
1.插入含有Windows10驅動程序的U盤,以管理員身份運行Setup.exe啟動安裝向導。
5. 電腦無法識別USB設備怎麼辦
windows 7操作系統中若無法識別USB設備,可參考以下步驟進行設置:
進入"設備管理器" --> "通用串列匯流排控制器" --> "USB ROOT HUB"右鍵屬性 --> "電源管理" --> 取消"允許計算機關閉這個設備以節省電源"的選擇,確定即可。(建議將所有的"USB ROOT HUB"都進行如上操作)
6. 怎麼解決電腦無法識別usb設備
是你的USB驅動程序未安裝好或者是你後期清理C盤時把USB集成的各類驅動文件刪除所致,最簡單的方法是,到「控制面板」中的「設備管理器」中卸載掉USB相關的驅動,用驅動精靈或者其它驅動管理軟體重新安裝就好了。希望對你有所幫助。
7. 電腦顯示無法識別的USB設備怎麼辦
點擊任務欄右下角的「通知」,查看有關該錯誤的詳細信息及「推薦」解決方法。如圖所示:
接下來嘗試重新連接設備,並更換連接數據線或USB介面來嘗試解決無法正常識別的問題。
對於手機無法正常連接電腦的情況,建議藉助第三方軟體程序來安裝手機驅動,如刷機精靈程序,在確保正常連接網路的情況下,運行刷機精靈進行連接。
此時刷機精靈將根據當前手機類型自動從網上下載與手機類型相匹配的驅動程序並自動完成安裝。
對於已擁有手機驅動程序的用戶,可以自行安裝手機驅動:右擊「計算機」,從彈出的菜單中選擇「管理」項。
在打開的「計算機管理」窗口中,切換到「設置管理器」項,右擊「未知設備」,選擇「更新驅動程序」項。
從彈出的窗口中,點擊「瀏覽計算機以查找驅動程序」文件項,來定位到本地磁碟中的驅動程序並完成安裝操作。
8. 如何使用C語言編程讀取從電腦usb介面的信息。
可以打開USB介面上的設備,或者打開USB控制器,那涉及到windows的驅動訪問。
一般訪問設備使用CreateFile打開設備,然後使用ReadFile/WriteFile讀寫設備。
比如:
HANDLE hFile = CreateFile(..., FILE_FLAG_OVERLAPPED, ...); //指定以非同步方式打開
BYTE bBuffer[100];
OVERLAPPED o = { 0 };
o.Offset = 345;
BOOL bReadDone = ReadFile(hFile, bBuffer, 100, NULL, &o); // bReadDone 指定I/O請求是不是以同步方式打開
DWORD dwError = GetLastError();
if (!bReadDone && (dwError == ERROR_IO_PENDING)) { //非同步方式打開
// The I/O is being performed asynchronously; wait for it to complete
WaitForSingleObject(hFile, INFINITE);
bReadDone = TRUE;
}
if (bReadDone) {
// o.Internal contains the I/O error
// o.InternalHigh contains the number of bytes transferred
// bBuffer contains the read data
} else {
// An error occurred; see dwError
}
9. 滑鼠插電腦顯示無法識別的usb設備
以Windows10為例,滑鼠連接電腦usb無法識別的解決方法如下:
1、打開電腦後,找到此電腦,滑鼠右鍵單擊,然後選擇「屬性」。
2、然後在控制面板界面選擇「設置管理器」。
3、在設置管理器界面選擇「通用串列匯流排控制器」,選擇該項目下的所有選項,右擊滑鼠,點擊「卸載。
4、卸載完成後,點擊「掃描檢測硬體改動」圖標,然後系統將自動安裝卸載的驅動,安裝完成就可以了。
滑鼠是計算機的一種外接輸入設備,也是計算機顯示系統縱橫坐標定位的指示器,因形似老鼠而得名。滑鼠的使用是為了使計算機的操作更加簡便快捷,來代替鍵盤那繁瑣的指令。
驅動程序即添加到操作系統中的一小塊代碼,其中包含有關硬體設備的信息。有了此信息,計算機就可以與設備進行通信。驅動程序是硬體廠商根據操作系統編寫的配置文件,可以說沒有驅動程序,計算機中的硬體就無法工作。