加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專(zhuān)業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長(zhǎng)期合作伙伴
立即加入

(分享)基于STM32 FATFS文件系統(tǒng)移植源碼、調(diào)試過(guò)程、學(xué)習(xí)筆記

2017/02/15
57
服務(wù)支持:
技術(shù)交流群

完成交易后在“購(gòu)買(mǎi)成功”頁(yè)面掃碼入群,即可與技術(shù)大咖們分享疑惑和經(jīng)驗(yàn)、收獲成長(zhǎng)和認(rèn)同、領(lǐng)取優(yōu)惠和紅包等。

虛擬商品不可退

當(dāng)前內(nèi)容為數(shù)字版權(quán)作品,購(gòu)買(mǎi)后不支持退換且無(wú)法轉(zhuǎn)移使用。

加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論
放大
方塊圖(3)
相關(guān)方案
  • 方案介紹
  • 相關(guān)文件
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

聲明:該設(shè)計(jì)資料來(lái)自啊德Blog文章,希望給需要的朋友帶來(lái)幫助。

一、序言
經(jīng)常在網(wǎng)上、群里看到很多人問(wèn)關(guān)于STM32的FATFS文件系統(tǒng)移植的問(wèn)題,剛好自己最近也在調(diào)試這個(gè)程序,為了讓大家少走彎路,我把我的調(diào)試過(guò)程和方法也貢獻(xiàn)給大家。

二、FATFS簡(jiǎn)介
FatFs Module是一種完全免費(fèi)開(kāi)源的FAT文件系統(tǒng)模塊,專(zhuān)門(mén)為小型的嵌入式系統(tǒng)而設(shè)計(jì)。它完全用標(biāo)準(zhǔn)C語(yǔ)言編寫(xiě),所以具有良好的硬件平臺(tái)獨(dú)立性,可以移植到8051、PIC、AVR、SH、Z80、H8、ARM等系列單片機(jī)上而只需做簡(jiǎn)單的修改。它支持FATl2、FATl6和FAT32,支持多個(gè)存儲(chǔ)媒介;有獨(dú)立的緩沖區(qū),可以對(duì)多個(gè)文件進(jìn)行讀/寫(xiě),并特別對(duì)8位單片機(jī)和16位單片機(jī)做了優(yōu)化。

三、移植準(zhǔn)備
1、FATFS源代碼的獲取,可以到官網(wǎng)下載:https://elm-chan.org/fsw/ff/00index_e.html 最新版本是R0.09版本,我們就移植這個(gè)版本的。
2、解壓文件會(huì)得到兩個(gè)文件夾,一個(gè)是doc文件夾,這里是FATFS的一些使用文檔和說(shuō)明,以后在文件編程的時(shí)候可以查看該文檔。另一個(gè)是src文件夾,里面就是我們所要的源文件。
3、建立一個(gè)STM32的工程,為方便調(diào)試,我們應(yīng)重載printf()底層函數(shù)實(shí)現(xiàn)串口打印輸出??梢詤⒖家呀?jīng)建立好的printf()打印輸出工程:https://www.viewtool.com/bbs/foru ... d=77&extra=page%3D1或者“相關(guān)附件”下載

四、開(kāi)始移植

  • 在已經(jīng)建立好的工程目錄User文件夾下新建兩個(gè)文件夾,F(xiàn)ATFS_V0.09和SPI_SD_Card,F(xiàn)ATFS_V0.09用于存放FATFS源文件,SPI_SD_Card用于存放SPI的驅(qū)動(dòng)文件。
  • 將ff.c添加到工程文件夾中,并新建diskio.c文件,在diskio.c文件中實(shí)現(xiàn)五個(gè)函數(shù):
  1. DSTATUS disk_initialize (BYTE);//SD卡的初始化
  2. DSTATUS disk_status (BYTE);//獲取SD卡的狀態(tài),這里可以不用管
  3. DRESULT disk_read (BYTE, BYTE*, DWORD, BYTE);//從SD卡讀取數(shù)據(jù)
  4. DRESULT disk_write (BYTE, const BYTE*, DWORD, BYTE);//將數(shù)據(jù)寫(xiě)入SD卡,若該文件系統(tǒng)為只讀文件系統(tǒng)則不用實(shí)現(xiàn)該函數(shù)
  5. DRESULT disk_ioctl (BYTE, BYTE, void*);//獲取SD卡文件系統(tǒng)相關(guān)信息

如截圖:

 FATFS初始化函數(shù):

FATFS狀態(tài)獲取函數(shù):

FATFS底層讀數(shù)據(jù)函數(shù):

注意:更多相關(guān)代碼下載,見(jiàn)“相關(guān)附件”下載

  • STM32_FATFS_SPI.rar
    描述:源文件下載
  • usart_printf.rar
    描述:STM32例程之串口打印輸出(源碼下載)
  • STM32的FATFS文件系統(tǒng)移植筆記.txt
    描述:詳見(jiàn)的講解,具體查看鏈接

相關(guān)推薦

電子產(chǎn)業(yè)圖譜