找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3370|回复: 1
打印 上一主题 下一主题
收起左侧

CH32V103FLASH挂载Fatfs文件系统,支持长文件名

[复制链接]
跳转到指定楼层
楼主
   组件使用R0.11a (September 05, 2015)版。

        Fatfs文件组件移植时只需修改diskio.c和ffconf.h文件即可,其他文件不用修改任何东西。option文件夹里面的根据使用情况添加,一般使用英文文件名可以都不用添加,要使用中文文件名需要添加cc936.c文件,但是评估板ROM容量小,中文字库太大会导致内存溢出,编译不通过。还有一个关于长文件名的使用,要用到ccsbcs.c文件,要修改宏#define  _USE_LFN为 1(默认为0不支持)才能支持长文件名的使用 。本实验使用的是英文文件名,可以使用长文件名。

        ffconf.h文件要修改的宏为:
        #define _USE_MKFS 1         //格式化功能
        #define _CODE_PAGE 437    //语言功能选择   437为英文
        #define _USE_LFN  1            //长文件名支持  默认为0不支持长文件名
        #define _VOLUMES  3          // 指定的物理设备数量                               #define _MIN_SS 512          // 指定扇区大小的最小值
        #define _MAX_SS 4096         //指定扇区大小的最大值

       移植完成的目录为:
      
       diskio.c文件修改的比较多,这里就不粘贴,有想浏览的可以下载附件。下面直接附测试截图:第二张截图是长文件名测试。
         
      最后总结一下,实验总体比较成功,但是过程中也出现很多问题,主要一个由于ROM容量问题不能实现中文文件名,希望以后能用到大容量的板子在实现。其他问题是移植时粗心造成一些错误,比如首次格式化时能够格式化成功,但是就是不能读写操作,最后才发现是disk_write函数在修改过程中要擦出一个扇区,把输入参数扇区号弄成了地址。。。。所以,发现问题99.99%的是自己编写的代码问题,就不要怀疑人家Fatfs组件的问题了,更不要怀疑是硬件问题了。共勉。

1.jpg (16.97 KB, 下载次数: 225)

1.jpg

2.jpg (22.15 KB, 下载次数: 213)

2.jpg

3.jpg (7.95 KB, 下载次数: 215)

3.jpg

4.jpg (15.19 KB, 下载次数: 218)

4.jpg

CH32_FUN.7z

512.53 KB, 下载次数: 25, 下载积分: 黑币 -5

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:693480 发表于 2023-7-1 22:36 | 只看该作者
大佬,我和你的错误一样,读SD卡的,能挂载打开文件,就是读写报错,错误是FR_INVALID_OBJECT(9),请问你也是这个错误吗?找半天找不到一样的
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表