在CH375HM使用說明中,有: 1 初始化(除數(shù)據(jù)流模式的命令外,進(jìn)行任何一種文件操作之前的必要步驟) ⑴ 初始化單片機(jī)與模塊之間的接口,設(shè)置必要的參數(shù)等 ⑵ 等待U 盤連接(中斷方式依靠CH375 事件通知,查詢方式依靠主動查詢) 問題1:在(2)中,使用查詢方式時應(yīng)該使用那個命令進(jìn)行查詢呢?其返回值是什么呢? 我用了CMD_QueryStatus ,然后查詢是否等于DISK_READY,正確嗎? 2;在使用CMD_FileCreate創(chuàng)建文件,不希望已有文件被刪除,那么應(yīng)該事先發(fā)出 CMD_FileOpen命令確認(rèn)文件不存在后再新建。 問題2:CMD_FileOpen命令在打開不存在的文件時,返回值時什么?是ERR_MISS_FILE 呢還是別的什么? 3:我用的U盤是臺電的2G,375支持嗎?
1,CMD_QueryStatus命令是查詢U盤是否連接,并不代表DISK-READY可以通過,DISK-READY這個命令是初始化U盤 2,打開文件失敗的話,應(yīng)該返回的錯誤代碼是ERR_MISS_FILE,沒有別的了 3,對U盤的容量沒有限制,關(guān)鍵問題是現(xiàn)在我們模塊不支持一個扇區(qū)大小大于512字節(jié)的U盤,只要是U盤扇區(qū)大小為512字節(jié),我們都能支持。
謝謝你的回答,關(guān)于第一個問題,我是這樣理解的: 我首先查詢是否連接 1:unsigned char Query375(void) //查詢CH375狀態(tài),是否鏈接 { unsigned char i; i = ExecCommand( CMD_QueryStatus, 0 ); if(i==ERR_SUCCESS) return i; else return mStopIfError(i); } 2 查詢是否可用 unsigned char IfUDiskReady(void) { unsigned char i; i = ExecCommand( CMD_DiskReady, 0 ); /* 查詢當(dāng)前模塊的狀態(tài) */ if(i==ERR_SUCCESS) return i; else return mStopIfError(i); } 如果這兩步都OK,是不是表示U盤可以正確讀寫呢?
這兩步通過了,說明模塊枚舉U盤成功了,可以進(jìn)行讀寫操作,除了扇區(qū)大小大于512字節(jié)的U盤。
請問如果如何確定U盤扇區(qū)大小呢,如果扇區(qū)大于512能否改為512呢?
如果您的U盤扇區(qū)大于512字節(jié),那建議您可以更換一個合適的U盤進(jìn)行操作!
你好,今天在U盤上成功創(chuàng)建了一個文件data.txt并寫入512字節(jié)數(shù)據(jù)如下, for(i=0;i<51;i++) { for(j=0;j<10;j++) DATA_BUF[i*10+j]='A'+j; } DATA_BUF[510]='F'; DATA_BUF[511]='F'; U盤插入PC后也能看到這個文件,但無法打開或刪除,并彈一個消息 ,“cannot find the F:\data.txt,do you want to create a new file?”,這個會是什么問題引起的呢?
寫操作結(jié)束后要更新文件長度,關(guān)閉文件
!?。ebug得到關(guān)閉文件函數(shù)返回值為 0x33,該符號頭文件無定義,是什么問題??? 關(guān)閉函數(shù)如下: unsigned char CloseFile(void) { unsigned char i; mCmdParam.Close.mUpdateLen = 1; //文件大小自動更新 i = ExecCommand( CMD_FileClose, 1 ); /* 關(guān)閉文件 */ return i; }
我是在以扇區(qū)方式寫了512字節(jié)的數(shù)據(jù)后用CLOSEFILE 函數(shù)自動更新,不需要加什么文件結(jié)尾標(biāo)記吧
不需要的
謝謝,問題已經(jīng)解決了