2612|7

123

帖子

0

TA的资源

一粒金砂(高级)

楼主
 

【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盘读取实物连接图

最新回复

原来这样 谢谢分享   详情 回复 发表于 2021-3-13 07:38
点赞 关注(1)
 
 

回复
举报

6785

帖子

0

TA的资源

五彩晶圆(高级)

沙发
 

先关闭文件,然后再打开文件,指针就到文件的首部,这个方法容易操作

不关闭文件,把文件指针移动到所需的位置,这个不好理解

 
 
 

回复

6785

帖子

0

TA的资源

五彩晶圆(高级)

板凳
 

两种方法都因为汉字的原因,出现异常吗

 

点评

所说的2种方法是解决文件指针移动的问题,而出现异常是与读取时截取的位置有关(对汉字而言,不涉及字符。)  详情 回复 发表于 2021-3-12 23:32
会的,但不一定准出现。因为汉字是双字节编码,当截取汉字的一个字节显示时就会出现异常,而截取的是2个字节时则没事。所以与读取时截取的位置有关,而字符是单字节的,所以无论怎样截取只要以字节为单位就没问题。  详情 回复 发表于 2021-3-12 23:27
 
 
 

回复

123

帖子

0

TA的资源

一粒金砂(高级)

4
 
本帖最后由 jennyzhaojie 于 2021-3-12 23:29 编辑
Jacktang 发表于 2021-3-12 22:58 两种方法都因为汉字的原因,出现异常吗  

与方法不相关,主因是汉字是双字节编码,当截取汉字的一个字节显示时就会出现异常,而截取的是2个字节时则没事。所以与读取时截取的位置有关,而字符是单字节的,所以无论怎样截取只要以字节为单位就没问题。

 
 
 

回复

123

帖子

0

TA的资源

一粒金砂(高级)

5
 
Jacktang 发表于 2021-3-12 22:58 两种方法都因为汉字的原因,出现异常吗  

所说的2种方法是解决文件指针移动的问题,而出现异常是与读取时截取的位置有关(对汉字而言,不涉及字符。)

 
 
 

回复

123

帖子

0

TA的资源

一粒金砂(高级)

6
 

如果你仔细数的话,会说显示的字符数也不是100个,其实这要从程序看,因在程序中使用了换行符等,故字节数到了100,而换行符等是看不见的,但它也占用读取的字节数。

点评

原来这样 谢谢分享  详情 回复 发表于 2021-3-13 07:38
 
 
 

回复

6785

帖子

0

TA的资源

五彩晶圆(高级)

7
 
jennyzhaojie 发表于 2021-3-12 23:38 如果你仔细数的话,会说显示的字符数也不是100个,其实这要从程序看,因在程序中使用了换行符等,故字节数 ...

原来这样

谢谢分享

 
 
 

回复

123

帖子

0

TA的资源

一粒金砂(高级)

8
 
Jacktang 发表于 2021-3-13 07:38 原来这样 谢谢分享

 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表
  缈昏瘧锛