LED_RUN_ACT( ); /* 運行燈亮,開始操作U盤 */ mCopyCodeStringToIRAM( mCmdParam.Open.mPathName, "/MINE.TXT" ); /*mine.TXT文件名,該文件在根目錄下 */ i = CH375FileOpen( ); /* 打開文件 */ if ( i == ERR_SUCCESS ) { /* 找到文件或者出錯 */ mStopIfError( i );
if ( CH375vFileSize > FILE_DATA_BUF_LEN ) { /* 由于演示板用的62256只有32K字節(jié),其中CH375子程序用512字節(jié),所以只讀取不超過63個扇區(qū),也就是不超過32256字節(jié) */ SecCount = FILE_DATA_BUF_LEN / CH375vSectorSize; /* 由于演示板用的62256只有32K字節(jié),其中CH375子程序用512字節(jié),所以只讀取不超過63個扇區(qū),也就是不超過32256字節(jié) */ NewSize = FILE_DATA_BUF_LEN; /* 由于RAM有限所以限制長度 */ } else { /* 如果原文件較小,那么使用原長度 */ SecCount = ( CH375vFileSize + CH375vSectorSize - 1 ) / CH375vSectorSize; /* 計算文件的扇區(qū)數(shù),因為讀寫是以扇區(qū)為單位的,先加CH375vSectorSize-1是為了讀出文件尾部不足1個扇區(qū)的部分 */ NewSize = (UINT16)CH375vFileSize; /* 原文件的長度 */ }
mCmdParam.Read.mSectorCount = SecCount; /* 讀取全部數(shù)據(jù),如果超過60個扇區(qū)則只讀取60個扇區(qū) */
CH375vFileSize += CH375vSectorSize - 1; /* 默認情況下,以扇區(qū)方式讀取數(shù)據(jù)時,無法讀出文件尾部不足1個扇區(qū)的部分,所以必須臨時加大文件長度以讀取尾部零頭 */ i = CH375FileRead( ); /* 從文件讀取數(shù)據(jù) */ CH375vFileSize -= CH375vSectorSize - 1; /* 恢復原文件長度 */ mStopIfError( i ); } i = CH375FileClose( ); /* 關閉文件 */ mStopIfError( i ); LED_RUN_INACT( );