急及求助:仍然無法讀出dbr

我用196單片機(jī)通過375控制U盤。貴公司沒有196的庫吧?所以被迫自己編底層函數(shù)。但是很奇怪:一個(gè)32M的IBM和一個(gè)512M的金斯敦一個(gè)2G的金斯敦都可以讀出0扇區(qū)的DBR。而另一個(gè)2G的金斯敦。1G的金斯敦。4G的朗科讀出的0扇區(qū)都是商標(biāo)信息,如kingston disk driver 2.0 其余都是00。用winhex等軟件觀察上述u盤的0扇區(qū)都是DBR,為何有的能讀,有的不能?U盤都能初始化成功,請(qǐng)幫我看看程序: ;*************************/* 從USB存儲(chǔ)器讀數(shù)據(jù)塊子函數(shù)*/************************ MREADS:

LDB R10,C ;需要讀的扇區(qū)數(shù)

LDB A,#CMD_DISK_READ ;讀數(shù)據(jù)指令 STB A,CH375_CMD_PORT MREADS2: STB W1,CH375_DAT_PORT;;/* LBA的最低8位 */ STB W2,CH375_DAT_PORT;;/* LBA的次低8位 */ STB W3,CH375_DAT_PORT;;/* LBA的次高8位 */ STB W4,CH375_DAT_PORT;;/* LBA的最高8位 */ STB R10,CH375_DAT_PORT; ; /* 扇區(qū)數(shù) */ MULUB R10,#8 ;叁扇區(qū)數(shù)×中斷數(shù) ; JBC POR2,2,$ ;判中斷引腳,是低到高躍變時(shí)中斷,后來未用 MREADS3: LCALL DIS_ZERO_16H ;僅僅為了延時(shí) LDB A,#CMD_GET_STATUS ;讀中斷狀態(tài)并獲取狀態(tài),請(qǐng)求數(shù)據(jù)寫入 STB A,CH375_CMD_PORT LDB A,CH375_DAT_PORT ; 讀

CMPB A,#1DH ;判斷是否是讀 JNE MREADS

LDB A,#CMD_RD_USB_DATA ; /*往CH375緩沖區(qū)寫入數(shù)據(jù)塊 */ STB A,CH375_CMD_PORT

LDB SSI,CH375_DAT_PORT ; /* ssi=后續(xù)數(shù)據(jù)的長(zhǎng)度 */

MREADS4: MREADS5: LDB A,CH375_DAT_PORT ;根據(jù)ssi讀數(shù)據(jù) STB A,[W5]+ DJNZ SSI,MREADS5 MREADS6: LDB A,#CMD_DISK_RD_GO ; /* 繼續(xù)執(zhí)行USB存儲(chǔ)器的讀操作 */ STB A,CH375_CMD_PORT

DJNZ R10,MREADS3 ;根據(jù)中斷數(shù)循環(huán)8次 ; JBC POR2,2,$ MREADS9: ;第9次中斷 (最后一次) LDB C,#CMD_GET_STATUS ;讀中斷狀態(tài)并獲取狀態(tài),請(qǐng)求數(shù)據(jù)讀出 STB C,CH375_CMD_PORT LDB C,CH375_DAT_PORT CMPB C,#14H JNE MREADS9

MREADS7: RET

;*************************/* 調(diào)用讀扇區(qū)函數(shù)*/************************ 入口函數(shù):w1 w2 w3 w4 是邏輯扇區(qū)lba,C是要讀的扇區(qū)數(shù),w5是存儲(chǔ)讀出扇區(qū)數(shù)據(jù)的數(shù)組首地址 LDB W1,#0 LDB W2,#0 LDB W3,#0 LDB W4,#0 LDB C,#1 LD W5,#AR_DATA; LCALL MREADS ; /* 讀取邏輯盤引導(dǎo)信息

(1)必須等CH375產(chǎn)生中斷時(shí),才可以執(zhí)行:LDB A,#CMD_GET_STATUS ;讀中斷狀態(tài)并獲取狀態(tài),請(qǐng)求數(shù)據(jù)寫入 (2)不知道是否方便移植C語言的例程測(cè)試一下,下載CH375EVT.ZIP:\CH375EVT\PUB\MCS51C\MISCELL


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

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