找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3401|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

CH32V103FLASH掛載Fatfs文件系統(tǒng),支持長文件名

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:927082 發(fā)表于 2021-5-25 16:12 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
   組件使用R0.11a (September 05, 2015)版。

        Fatfs文件組件移植時只需修改diskio.c和ffconf.h文件即可,其他文件不用修改任何東西。option文件夾里面的根據(jù)使用情況添加,一般使用英文文件名可以都不用添加,要使用中文文件名需要添加cc936.c文件,但是評估板ROM容量小,中文字庫太大會導(dǎo)致內(nèi)存溢出,編譯不通過。還有一個關(guān)于長文件名的使用,要用到ccsbcs.c文件,要修改宏#define  _USE_LFN為 1(默認(rèn)為0不支持)才能支持長文件名的使用 。本實驗使用的是英文文件名,可以使用長文件名。

        ffconf.h文件要修改的宏為:
        #define _USE_MKFS 1         //格式化功能
        #define _CODE_PAGE 437    //語言功能選擇   437為英文
        #define _USE_LFN  1            //長文件名支持  默認(rèn)為0不支持長文件名
        #define _VOLUMES  3          // 指定的物理設(shè)備數(shù)量                               #define _MIN_SS 512          // 指定扇區(qū)大小的最小值
        #define _MAX_SS 4096         //指定扇區(qū)大小的最大值

       移植完成的目錄為:
      
       diskio.c文件修改的比較多,這里就不粘貼,有想瀏覽的可以下載附件。下面直接附測試截圖:第二張截圖是長文件名測試。
         
      最后總結(jié)一下,實驗總體比較成功,但是過程中也出現(xiàn)很多問題,主要一個由于ROM容量問題不能實現(xiàn)中文文件名,希望以后能用到大容量的板子在實現(xiàn)。其他問題是移植時粗心造成一些錯誤,比如首次格式化時能夠格式化成功,但是就是不能讀寫操作,最后才發(fā)現(xiàn)是disk_write函數(shù)在修改過程中要擦出一個扇區(qū),把輸入?yún)?shù)扇區(qū)號弄成了地址。。。。所以,發(fā)現(xiàn)問題99.99%的是自己編寫的代碼問題,就不要懷疑人家Fatfs組件的問題了,更不要懷疑是硬件問題了。共勉。

1.jpg (16.97 KB, 下載次數(shù): 225)

1.jpg

2.jpg (22.15 KB, 下載次數(shù): 213)

2.jpg

3.jpg (7.95 KB, 下載次數(shù): 215)

3.jpg

4.jpg (15.19 KB, 下載次數(shù): 218)

4.jpg

CH32_FUN.7z

512.53 KB, 下載次數(shù): 25, 下載積分: 黑幣 -5

評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:693480 發(fā)表于 2023-7-1 22:36 | 只看該作者
大佬,我和你的錯誤一樣,讀SD卡的,能掛載打開文件,就是讀寫報錯,錯誤是FR_INVALID_OBJECT(9),請問你也是這個錯誤嗎?找半天找不到一樣的
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表