找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

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

超輕量級(jí)FatFS文件系統(tǒng)STM32單片機(jī)源碼

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:1020630 發(fā)表于 2022-4-22 12:33 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
安富萊的資料 看附件。

例程簡(jiǎn)介
    本例程移植了R0.10b版本的FatFS文件系統(tǒng),采用板載的8MB SPI Flash作為存儲(chǔ)介質(zhì)。

    FatFS文件系統(tǒng)的移植說(shuō)明見(jiàn): \User\FatFS\FatFS移植記錄.txt

    核心文件為:
    bsp_spi_flash.c/.h : SPI Flash底層驅(qū)動(dòng)代碼
    demo_spi_flash_fatfs.c/.h  演示FatFS API接口函數(shù)的使用方法的主程序。

    配置GPIO的bsp_InitSFlash函數(shù)在執(zhí)行 f_mount() 掛在文件系統(tǒng)時(shí)會(huì)被調(diào)用。因此,沒(méi)有在 bsp.c 中添加SPI的初始化。

    注意:為了支持長(zhǎng)文件名,F(xiàn)atFS必須包含 cc936.c 文件,其中 static const WCHAR uni2oem[] 常量數(shù)組
    是一個(gè)GB2312碼和UNICODE代碼的轉(zhuǎn)換表,會(huì)占用程序空間約170K字節(jié)。
    如果不需要支持長(zhǎng)文件名,則代碼空間可節(jié)約 170K字節(jié)。

    由于支持長(zhǎng)文件名,代碼大小超過(guò)了128K,因此不能在CpuRAM調(diào)試,除非去除長(zhǎng)文件名的支持。

    程序功能有:
    (0) 輸入字符0,對(duì)SPI Flash進(jìn)行文件系統(tǒng)格式化。
    (1) 輸入字符1,打印SD根目錄下的文件和文件夾列表。
    (2) 輸入字符2,在SD卡根目錄下創(chuàng)建一個(gè)文件,文件名為 armfly.txt
        并且向該文件寫入一個(gè)字符串。
    (3) 輸入字符3,打開(kāi)SD卡根目錄下的armfly.txt文件,讀出其內(nèi)容,打印到串口。
    (4) 輸入字符4,創(chuàng)建打開(kāi)SD卡根目錄下的armfly.txt文件,讀出其內(nèi)容,打印到串口。
    (5) 輸入字符5,刪除之前創(chuàng)建的測(cè)試文件和目錄
    (6) 輸入字符6,寫一個(gè)2M的文件speed1.txt,測(cè)試讀寫速度

【2】執(zhí)行結(jié)果
    請(qǐng)用USB轉(zhuǎn)串口線連接PC機(jī)和開(kāi)發(fā)板。PC機(jī)上運(yùn)行SecureCRT軟件,波特率設(shè)置為 115200bps,無(wú)硬件流控

    從PC機(jī)的軟件界面觀察程序執(zhí)行結(jié)果,結(jié)果如下:【通過(guò)PC機(jī)鍵盤輸入命令】

------------------------------------------------
第一次使用請(qǐng)選擇命令0進(jìn)行SPI Flash格式化
請(qǐng)選擇操作命令:
0 - 對(duì)SPI_Flash進(jìn)行文件系統(tǒng)格式化
1 - 顯示SD卡根目錄下的文件列表
2 - 創(chuàng)建一個(gè)新文件armfly.txt
3 - 讀armfly.txt文件的內(nèi)容
4 - 創(chuàng)建目錄
5 - 刪除文件和目錄
6 - 讀寫文件速度測(cè)試

【0 - FileFormat】
掛載文件系統(tǒng)成功 (FR_OK:成功)
格式化成功 (FR_OK:成功)
卸載文件系統(tǒng)成功 (FR_OK:成功)

【1 - ViewRootDir】
掛載文件系統(tǒng)成功 (FR_OK:成功)
屬性        |  文件大小 | 短文件名 | 長(zhǎng)文件名
卸載文件系統(tǒng)成功 (FR_OK:成功)

【2 - CreateNewFile】
armfly.txt 文件寫入成功

【3 - ReadFileData】

armfly.txt 文件內(nèi)容 :
FatFS Write Demo

【4 - CreateDir】
f_mkdir Dir1 Ok
f_mkdir Dir2 Ok
f_mkdir Dir1_1 成功

【5 - DeleteDirFile】
刪除Dir1失敗(錯(cuò)誤代碼 = FR_DENIED:由于禁止訪問(wèn)或者目錄已滿訪問(wèn)被拒絕) 文件只讀或目錄非空
刪除子目錄/Dir1/Dir1_1成功
刪除目錄Dir1成功
刪除目錄 Dir2 成功
刪除文件 armfly.txt 成功
沒(méi)有發(fā)現(xiàn)文件:Speed00.txt
沒(méi)有發(fā)現(xiàn)文件:Speed01.txt
沒(méi)有發(fā)現(xiàn)文件:Speed02.txt
沒(méi)有發(fā)現(xiàn)文件:Speed03.txt
沒(méi)有發(fā)現(xiàn)文件:Speed04.txt
沒(méi)有發(fā)現(xiàn)文件:Speed05.txt
沒(méi)有發(fā)現(xiàn)文件:Speed06.txt
沒(méi)有發(fā)現(xiàn)文件:Speed07.txt
沒(méi)有發(fā)現(xiàn)文件:Speed08.txt
沒(méi)有發(fā)現(xiàn)文件:Speed09.txt
沒(méi)有發(fā)現(xiàn)文件:Speed10.txt
沒(méi)有發(fā)現(xiàn)文件:Speed11.txt
沒(méi)有發(fā)現(xiàn)文件:Speed12.txt
沒(méi)有發(fā)現(xiàn)文件:Speed13.txt
沒(méi)有發(fā)現(xiàn)文件:Speed14.txt
沒(méi)有發(fā)現(xiàn)文件:Speed15.txt
沒(méi)有發(fā)現(xiàn)文件:Speed16.txt
沒(méi)有發(fā)現(xiàn)文件:Speed17.txt
沒(méi)有發(fā)現(xiàn)文件:Speed18.txt
沒(méi)有發(fā)現(xiàn)文件:Speed19.txt

【6 - TestSpeed】
開(kāi)始寫文件Speed00.txt 2048KB ...
................................................................
  寫耗時(shí) : 10922ms   平均寫速度 : 192011B/S (187KB/S)
開(kāi)始讀文件 2048KB ...
................................................................
  讀耗時(shí) : 2422ms   平均讀速度 : 865876B/S (845KB/S)

【6 - TestSpeed】
開(kāi)始寫文件Speed01.txt 2048KB ...
................................................................
  寫耗時(shí) : 10711ms   平均寫速度 : 195794B/S (191KB/S)
開(kāi)始讀文件 2048KB ...
................................................................
  讀耗時(shí) : 2421ms   平均讀速度 : 866233B/S (845KB/S)


Keil代碼下載: V5-107e_FatFS文件系統(tǒng)例程(SPI串行Flash).7z (2.43 MB, 下載次數(shù): 47)

評(píng)分

參與人數(shù) 1黑幣 +40 收起 理由
admin + 40 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

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

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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