【RISC-V MCU CH32V103测评】U盘读写功能的再解读
[复制链接]
本帖最后由 jennyzhaojie 于 2021-3-12 22:21 编辑
上次已对U盘的读写功能做了一定的介绍,但还不太全面,故这次再做些补充说明。
之所以不很全面是和程序处理的流程及程序内容相关的,为便于说明这里给出处理的流程图,见图1所示。
图1 U盘读写流程图
上次我们只沿着左侧的分支进行了介绍,那右侧分支呢?
它则是在原有文件的基础上进行内容的追加,然后再显示出文件的前100个字节,其执行效果如图2所示。
图2 追加内容的处理效果
那读取的前100个字节又显示在何处呢?
其实并没有任何内容被显示出来,之所以如此是与程序的内容相关的,随着操作的进行此时文件的指针已被移动到了文件的末尾,自然是没有内容可读出的,也就没有任何的内容可供显示。
那此时该添加如何的操作呢?
当然是修改文件指针,这又有2种方法可以达到目的,其一是先关闭文件,然后再打开文件,则文件指针就自然换到文件的首部;另一种方法则是无需关闭文件,只用相应的函数就能把文件指针移动到所需的位置。
第一种方法所用的语句为:
i = CHRV3FileClose( );
mStopIfError( i );
strcpy( (PCHAR)mCmdParam.Open.mPathName, "/C51/NEWFILE.C" ); //设置将要操作的文件路径和文件名/C51/NEWFILE.C
s = CHRV3FileOpen( );
第二种方法所用的语句为:
mCmdParam.ByteLocate.mByteOffset = 0x0; //移到文件的头部
CHRV3ByteLocate( );
其执行的效果则如图3所示,由于其中涉及汉字的读取会出现因读取而导致的异常现象。
图3读取汉字的显示效果
图4 读取字符的显示效果
图5 追加内容后的结果
图6 U盘读取实物连接图
|