(二)修改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...