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字节,其中CH375子程序用512字节,所以只读取不超过63个扇区,也就是不超过32256字节 */ SecCount = FILE_DATA_BUF_LEN / CH375vSectorSize; /* 由于演示板用的62256只有32K字节,其中CH375子程序用512字节,所以只读取不超过63个扇区,也就是不超过32256字节 */ NewSize = FILE_DATA_BUF_LEN; /* 由于RAM有限所以限制长度 */ } else { /* 如果原文件较小,那么使用原长度 */ SecCount = ( CH375vFileSize + CH375vSectorSize - 1 ) / CH375vSectorSize; /* 计算文件的扇区数,因为读写是以扇区为单位的,先加CH375vSectorSize-1是为了读出文件尾部不足1个扇区的部分 */ NewSize = (UINT16)CH375vFileSize; /* 原文件的长度 */ }
mCmdParam.Read.mSectorCount = SecCount; /* 读取全部数据,如果超过60个扇区则只读取60个扇区 */
CH375vFileSize += CH375vSectorSize - 1; /* 默认情况下,以扇区方式读取数据时,无法读出文件尾部不足1个扇区的部分,所以必须临时加大文件长度以读取尾部零头 */ i = CH375FileRead( ); /* 从文件读取数据 */ CH375vFileSize -= CH375vSectorSize - 1; /* 恢复原文件长度 */ mStopIfError( i ); } i = CH375FileClose( ); /* 关闭文件 */ mStopIfError( i ); LED_RUN_INACT( );