[求助]CH375寫U盤的問題

我用AVR 單片機(jī)mega32和CH375配合來讀寫U盤,使用U 盤文件級(jí)子程序庫CH375HFB.A編程。讀U盤用字節(jié)模式,寫U盤用扇區(qū)模式。讀U盤沒有問題,而寫U盤多數(shù)是成功的,但有一小半左右會(huì)失敗,用電腦查看U盤創(chuàng)建的文件只有一個(gè)字節(jié),日期固定是2004-1-1而不是我設(shè)定的日期。我每次寫U盤的順序都是先創(chuàng)建文件然后一個(gè)一個(gè)扇區(qū)寫下去整個(gè)文件寫完后,修改時(shí)間.日期.長度.關(guān)閉文件。請(qǐng)問各位高手,這種問題是不是文件沒有寫完,還是沒有更新長度?(電源加強(qiáng)濾波也沒解決問題。)

應(yīng)該是你寫進(jìn)去了沒有更新文件長度,你可以拿WINHEX這個(gè)軟件來看下你的文件第一個(gè)扇區(qū)應(yīng)該就是你寫的數(shù)據(jù)進(jìn)去的


問題應(yīng)該是沒有更新文件長度。可我試過幾種辦法結(jié)果都不理想, 增加語句:#define LIB_CFG_UPD_SIZE 0 , 加入延時(shí)1us , 程序如下: mCmdParam.Modify.mFileAttr = 0xff; /* 輸入?yún)?shù): 新的文件屬性,為0FFH則不修改 */ mCmdParam.Modify.mFileTime = 0xffff; /* 輸入?yún)?shù): 新的文件時(shí)間,為0FFFFH則不修改,使用新建文件產(chǎn)生的默認(rèn)時(shí)間 */ mCmdParam.Modify.mFileDate = MAKE_FILE_DATE( 2008, 6, 6 ); /* 輸入?yún)?shù): 新的文件日期:2008.6.6 */ mDelay1uS( ); duan = duan + 0x000000 ; mDelay1uS( ); mCmdParam.Modify.mFileSize = duan*256; i = CH375FileModify( ); /* 修改當(dāng)前文件的信息,修改日期和長度 */ mCmdParam.Close.mUpdateLen = 0; /* 不要自動(dòng)計(jì)算文件長度,如果自動(dòng)計(jì)算,那么該長度總是CH375vSectorSize的倍數(shù) */ mDelay1uS( ); mDelay1uS( ); i = CH375FileClose( ); 是不是哪些地方延時(shí)還要長一些? 增加了 duan = duan + 0x000000 ;這個(gè)語句后,大于65K的文件才可以存儲(chǔ)成功。


那你可以這樣試下,在你關(guān)閉文件之后你在隨便打開一個(gè)文件,然后在安全移除下文件應(yīng)該就可以了.


hcn:你好!“那你可以這樣試下,在你關(guān)閉文件之后你在隨便打開一個(gè)文件,然后在安全移除下文件應(yīng)該就可以了.”是什么原理哪? 增加了語句:mCmdParam.ByteWrite.mByteCount = 0; /* 如果為0 則更新文件長度 */ CH375ByteWrite( ); /* 以字節(jié)為單位向文件寫入數(shù)據(jù)塊 */ 感覺效果不錯(cuò)。


U盤內(nèi)部有緩沖,這么作可以強(qiáng)制U盤把緩沖中數(shù)據(jù)寫入Flash


剛開始接觸,大俠討論的問題看不明白,需要好好學(xué)習(xí)啊


剛開始接觸,大俠討論的問題看不明白,需要好好學(xué)習(xí)啊


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

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