FATFS檔案系統

2021-10-10 09:34:38 字數 1121 閱讀 8148

(二)修改fatfs

主要修改底層裝置驅動函式:diskio.c

目的:就是把 diskio.c 中的函式介面與spi flash 晶元驅動連線起來。總共有五個函式,分別為裝置狀態獲取(disk_status)、裝置初始化(disk_initialize)、扇區讀取(disk_read)、扇區寫入(disk_write)、其他控制(disk_ioctl)。

還有修改ffconf.h

目的:根據需求來配置ffconf.h裡面的巨集定義

(三)掛在檔案系統

1.建立一些物件

fatfs fs; /* fatfs檔案系統物件 /

fil fnew; / 檔案物件 /

fresult res_flash; / 檔案操作結果 /

uint fnum; / 檔案成功讀寫數量 */

2.檔案系統的掛在

//在外部spi flash掛載檔案系統,檔案系統掛載時會對spi裝置初始化

res_flash = f_mount(&fs,「1:」,1);

如果沒有檔案系統就格式化建立檔案系統

/* 如果沒有檔案系統就格式化建立建立檔案系統 /

if(res_flash == fr_no_filesystem)

(四)檔案系統:寫入

1.先開啟檔案

res_flash = f_open(&fnew, 「1:fatfs讀寫測試檔案.txt」,fa_create_always | fa_write ); //不存在就建立乙個

2.將儲存區的內容寫入檔案內

res_flash=f_write(&fnew,writebuffer,sizeof(writebuffer),&fnum);

3.關閉檔案

f_close(&fnew);

(五)檔案系統:讀出

1.開啟檔案

res_flash = f_open(&fnew, 「1:fatfs讀寫測試檔案.txt」, fa_open_existing | fa_read);

2.將檔案內容讀取到緩衝區

res_flash = f_read(&fnew, readbuffer, sizeof(readbuffer), &fnum);

3.關閉檔案

f_close(&fnew);

fatfs檔案系統

使用stm32cubemx新增fatfs下的user defined,開啟工程,檢視 可以發現 中先呼叫了mx fatfs init 函式,而此函式又呼叫了 fatfs linkdriver 函式,繼續查詢fatfs linkdriver 函式,發現此函式第乙個變數為diskio drvtypede...

FATFS檔案系統讀寫資料

fatfs檔案系統靈活易用,很適合小型嵌入式系統的開發,比如漢字儲存或者將感測器測得的實時資料直接儲存到tf sd卡中,避免了記錄實驗資料的繁重工作,也提高了後期進一步處理資料的效率。fatfs檔案系統參考手冊和 本次試驗採用的是最新的ff12,版本之間的差異詳見版本說明。1.新建工程 新版本直接加...

Fatfs檔案系統學習

移植過程網上有很多,直接參考就可以了。1 學習過程對api重新理解 f mout f mout fs,0 0 掛載 f mout 0,0 0 解除安裝 一直對解除安裝有錯誤的認識,一直以為解除安裝的時候第乙個形參還是 fs。2 英文長檔名的實現 英文長檔名的實現參考了這個朋友的帖子。define c...