2803|1

1552

帖子

1

TA的资源

五彩晶圆(初级)

楼主
 

【CH579M-R1】+U盘读/写 [复制链接]

  本帖最后由 jinglixixi 于 2020-10-18 10:45 编辑

关于U盘读/写的一个有趣测试,在官网的例程中只提供了U盘创建新文件的示例,其功能是生成一个文本文件。

  1. 首先按图1所示来搭建测试电路;
  2. 将编译好的测试程序下载到开发板;
  3. 打开串口调试工具并运行例程,则执行效果如图2所示。

图1测试电路

 

图2 创建与写入结果

 

将U盘插入电脑后,在U盘中果真能见到新生成的文件NEWFILE1.TXT,其内容如图3所示。

图3 文件内容

 

有了写入功能固然可喜,但怎么读取呢?

在例程中却没了下文,参照其他的资料,自行补充了读取程序,其执行效果如图4所示。

图4 读取结果

 

可问题是我写入的明明是“Note:这个程序是以字节为单位进行U盘文件读写,简单演示功能。”,怎么读取得前100个字符却成了与写入内容没一点关系的100个“CCCCCCCCCC...”呢?问题出在何处呢?

后来才发现原来问题出现在下面的语句上:

for ( i=0; i!=mCmdParam.ByteRead.mByteCount; i++ )  printf( "%C", mCmdParam.ByteRead.mByteBuffer );

上,应改为:

for ( i=0; i!=mCmdParam.ByteRead.mByteCount; i++ )  printf( "%c", mCmdParam.ByteRead.mByteBuffer );

图5 正确读取结果

读取的问题终于解决了!

 

另外一个我所关心的问题是如何生成一个BMP图像文件,便以存储二进制数的方式,生成了一个以BMP为后缀的文件。随后麻烦也就来了。

什么情况?

那就是它真的生成了该名称的文件,但问题是你既不能以WinHex工具软件来查看其内容,也不能自由地将其删除。如果这样实验下去,结果只有一个,那就是重新格式化U盘,否则就没法用了,但格式化的方法也未必好使。

那怎么办呢?只能以毒攻毒了,起初是在开发板上以文件删除的程序将其删除,但遗憾的是没能成功。那还能怎么办呢?

于是先以同样的文件名在开发板上生成一个文本文件,然后再删除该文件。这次果然成功了,这个顽疾算是从U盘给拔除了!

删除文件的效果如图6所示

图6 删除文件

在文件操作中,若指定的文件目录不存在,则会列出根目录下的所有文件,见图7所示。

图7 列出根目录文件

 

那在文件中是否能写入二进制的字节数据呢?当然是可以的,你看下面这段程序不是清楚地将回车换行符都写到文件里了吗。

printf( "ByteWrite\n" );

i = sprintf( (PCHAR)buf,"Note: \xd\xa这是一个以字节为单位进行U盘读写的简单示例。\xd\xa");

mCmdParam.ByteWrite.mByteCount = i;

mCmdParam.ByteWrite.mByteBuffer = buf;

s = CH579ByteWrite( );

mStopIfError( s );

printf("写入成功\n");

后面会继续探索BMP文件的生成方法及文件的读取,以便实现在该开发板上实现数码相框的功能。

 

最新回复

沁恒CH579M-R1开发板测评 汇总贴:https://bbs.eeworld.com.cn/thread-1140005-1-1.html   详情 回复 发表于 2020-10-19 10:37
点赞 关注
 
 

回复
举报

1万

帖子

2853

TA的资源

管理员

沙发
 

沁恒CH579M-R1开发板测评

汇总贴:https://bbs.eeworld.com.cn/thread-1140005-1-1.html

加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身
个人签名玩板看这里:
https://bbs.eeworld.com.cn/elecplay.html
EEWorld测评频道众多好板等你来玩,还可以来频道许愿树许愿说说你想要玩的板子,我们都在努力为大家实现!
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
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
快速回复 返回顶部 返回列表