CH375FileRead函數(shù)能正確讀取扇區(qū),但是讀到文件末尾時就顯示亂七八糟的,正常情況應(yīng)該是EOF結(jié)尾,如下所示,還有我的89C52內(nèi)部拓展RAM大小為1024byte,但如果我定義FILE_DATA_BUF_LEN為0x200,編譯的時候xdata會超過1024byte,所以我修改成了0x111,能讀出來512byte,但是最后亂碼
這次真的沒辦法了,求斑竹大人給個解決辦法,吐血羅 @ZBin
這是程序中的關(guān)鍵一段 ................... printf("扇區(qū)方式讀取1扇區(qū)\n"); mCmdParam.Read.mSectorCount=1;//設(shè)置讀取的字節(jié)數(shù) i=CH375FileRead(); printf("CH375FileReadX返回值:%x\n",i); if(i==ERR_SUCCESS) { printf("讀取文件成功\n"); } else { printf("讀取文件失敗\n"); } CH375DirtyBuffer(); /*因為文件讀寫緩沖區(qū)與磁盤數(shù)據(jù)緩沖區(qū)重疊,所以在CH375FileRead讀文件后和在CH375FileWrite寫文件前必須清除磁盤緩沖區(qū) */ // FILE_DATA_BUF[513]=0; /* 置字符串結(jié)束標(biāo)志,最多顯示100個字符 */ printf("文件內(nèi)容為:%s\n",FILE_DATA_BUF); CH375FileClose(); ...................
首先,你編譯之后RAM肯定不能超過單片機內(nèi)部RAM,如果RAM不夠的話可以共用磁盤緩沖區(qū),用CH375FileReadX代替CH375FileRead,用CH375FileWriteX代替CH375FileWrite。另外,你的圖片沒有上傳成功,你可以發(fā)到我的郵箱看一看。
就是這個圖片:http://oi40.tinypic.com/m7fkp1.jpg 另外89C52的RAM分配為:內(nèi)部RAM256byte+內(nèi)部拓展RAM1024byte,無外部RAM 。。。。。。。。 還有那個磁盤緩沖區(qū)具體怎么用啊,我看了FILELIB4\EXAM3還是木有搞定,就是一直亂碼
額,搞定羅,沒注意這一句: CH375vFileSize += CH375vSectorSize - 1; /* 默認(rèn)情況下,以扇區(qū)方式讀取數(shù)據(jù)時,無法讀出文件尾部不足1個扇區(qū)的部分,所以必須臨時加大文件長度以讀取尾部零頭 */