不使用庫(kù)函數(shù)用CH375對(duì)優(yōu)盤進(jìn)行初始化(重發(fā),希望置頂)[原創(chuàng)]

所謂的不兼容只是程序中一般不加出錯(cuò)處理造成的,這本來(lái)就不符合規(guī)范。目前只有一種情況CH375似乎不大搞得定,就是讀寫端點(diǎn)是同一個(gè)時(shí),可惜的是Win2000也不支持這種優(yōu)盤,所以幾乎不用考慮。 我現(xiàn)在使用CH375時(shí)是按照下面的流程走的,兼容性大概90%左右(一款清華紫光1G,一款是朗科早期的16M無(wú)法支持)。 1.發(fā)出DISK_INIT命令,等待成功中斷 2.發(fā)出DISK_MAX_LUN命令,等待成功中斷或STALL。 3.如果第二步成功,則讀出當(dāng)前優(yōu)盤有幾個(gè)邏輯單元,并保存。STALL則第四步。

從下面開始,如果出現(xiàn)0x1f中斷狀態(tài),發(fā)出DISK_R_SENSE,并對(duì)出錯(cuò)進(jìn)行處理,如果Sense key = 0x06, Additional Sense code = 0x28,則重復(fù)當(dāng)前命令,否則無(wú)法處理此優(yōu)盤。(請(qǐng)參考USB Mass Storage Class – UFI Command Specification)

4.發(fā)出DISK_INQUIRY命令,可能需要出錯(cuò)處理,直到成功。 5.發(fā)出DISK_SIZE命令,可能需要出錯(cuò)處理,直到成功。 6.讀MBR/DBR,判斷文件系統(tǒng),如果不支持且邏輯單元未全部判斷完成,則置為下一個(gè)邏輯單元,跳轉(zhuǎn)到第4步,否則無(wú)法支持此優(yōu)盤。(某些插到電腦上出現(xiàn)多個(gè)盤符的優(yōu)盤)

幾乎所有的金士頓優(yōu)盤在第4步必定會(huì)出錯(cuò)。某些優(yōu)盤支持在優(yōu)盤使用時(shí)可以打開/關(guān)閉寫保護(hù),同樣會(huì)使讀扇區(qū)命令出錯(cuò),也需要重復(fù)當(dāng)前命令。

使用CH375也有半年了,希望這點(diǎn)東西能對(duì)要脫離庫(kù)函數(shù)進(jìn)行開發(fā)的人有點(diǎn)幫助。

我是剛開始用CH375做主機(jī)讀U盤的,在開發(fā)過程中遇到很多困難,其中就有U盤兼容性問題, 能否給個(gè)CH375初始化源程序?謝謝了 個(gè)人信息保護(hù),已隱藏

謝謝了,謝謝了


我使用的單片機(jī)估計(jì)不會(huì)有多少人用的,而且只有匯編語(yǔ)言,所以源程序就算給了也沒有多少用處。你可以參考我的算法描述,如果有問題可以問我。


只有登錄才能回復(fù),可以選擇微信賬號(hào)登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频