SOS:CH375DiskQuery為何老返回0x82(可能磁盤已經(jīng)斷)?

請教各位高手,我用C8051F020通過CH375讀U盤上的文件,程序可以檢測到U盤插入,但CH375DiskReady查詢U盤是否準備好時總是返回0x23(查.h中定義的含義是:代碼2XH-3XH用于USB主機方式的通訊失敗代碼,由CH375返回),下面用CH375DiskQuery查詢U盤容量是總是返回0x82,即磁“盤尚未連接,可能磁盤已經(jīng)斷開”。但此時U盤上的燈還在閃爍。 是不是磁盤讀寫緩沖區(qū)定義引起的?我的定義是: /* 只使用單片機內(nèi)置的1KB外部RAM: 0000H-01FFH 為磁盤讀寫緩沖區(qū), 以字節(jié)為單位讀寫文件不需要文件數(shù)據(jù)讀寫緩沖區(qū)FILE_DATA_BUF */ #define DISK_BASE_BUF_ADDR 0x0000 /* 外部RAM的磁盤數(shù)據(jù)緩沖區(qū)的起始地址,從該單元開始的緩沖區(qū)長度為SECTOR_SIZE */ #define FILE_DATA_BUF_ADDR 0x0200 /* 外部RAM的文件數(shù)據(jù)緩沖區(qū)的起始地址,緩沖區(qū)長度不小于一次讀寫的數(shù)據(jù)長度,字節(jié)模式不用該緩沖區(qū) */ #define FILE_DATA_BUF_LEN 1024 /* 外部RAM的文件數(shù)據(jù)緩沖區(qū),緩沖區(qū)長度不小于一次讀寫的數(shù)據(jù)長度,字節(jié)模式不用該 緩沖區(qū) */

這個問題困擾了我兩天了,請高手指教這是什么原因造成的。感謝! 程序代碼如下: EA = 0; CH375_PORT_INIT();

xWriteCH375Cmd(0x06); xWriteCH375Data(0x57); temp=xReadCH375Data(); if(temp==0xA8) Dispchsstring("存在",4,0);//說明CH375芯片存在 i = CH375LibInit( ); // 初始化CH375程序庫和CH375芯片,操作成功返回0 mStopIfError( i ); while ( CH375DiskStatus != DISK_CONNECT ) { i = xQueryInterrupt( ); // 查詢CH375中斷并更新中斷狀態(tài),等待U盤插入 } Delay(100); //檢查U盤是否準備好,有些U盤不需要這一步,但是某些U盤必須要執(zhí)行這一步才能工作 for ( i = 0; i < 5; i ++ ) // 有的U盤總是返回未準備好,不過可以被忽略 { Delay( 100 ); c=CH375DiskReady( ); if ( c == ERR_SUCCESS ) { Delay( 100 ); break;; // 查詢磁盤是否準備好 } } for ( c = 0; c < 10; c ++ ) { //查詢磁盤容量等信息 i=CH375DiskQuery(); }

EA = 1;[Emot]27[/Emot]

DISK-READY函數(shù)沒有通過的話,你需要檢查下你的U盤供電足不足,其次就是USB口的4根線連接是否正常,有沒有接反,USB口上面的2根線是否串接電阻,如果串接,應(yīng)該在5歐姆以內(nèi)才可以。


檢查了。換功率大些的供電,4根線也沒有接反。D+、D-換一下試了也不行。USB口上面的2根線沒有串接電阻。 請高手們多多指教。先謝了!


那你這樣,你用示波器去探測下USB口的是否有波形出來?還有就是你使用我們的哪一個庫?還有就是你的三個讀寫子函數(shù)延時上面時間夠不夠?命令與命令之間,命令與數(shù)據(jù)之間需要2US的延時,數(shù)據(jù)與數(shù)據(jù)之間需要1US的延時,如果延時不夠的話,可能操作的時候也會出現(xiàn)問題,還有就是你的單片機的RAM是多大?按照你定義的,RAM在1。5K,在加上我們的一些變量的定義,RAM應(yīng)該在2K的單片機才能跑我們的程序


波形挺好的,D+和D-對稱,C8051F020的RAM容量是4K,應(yīng)該是夠的。我用的庫是CH375HFC.lib.延時時間也夠,延時再長也不行。


那你使用我們的操作物理扇區(qū)的例子程序去測試下看程序停在什么位置。實際庫的初始化和我們操作物理扇區(qū)的初始化步驟是差不多的。


已經(jīng)解決了.和硬件無關(guān).對CH375HFC.h中的一些地方又進行了幾次更改,就莫名其妙地好了!把更改的地方再改回去,還是好的!太怪了,不可理解!這就是把一些源代碼封裝起來無法讓用戶看見的缺點.折騰了我4天.我擔心以后再出這樣的問題如何辦? 謝謝高手的指點.


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

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