2、stlink v2
3、cp2102 usb轉串列埠
4、8g sd卡
5、stm32cubemx
6、keil mdk
匯出的工程可以直接編譯。最終程式執行順序為:主函式–>檔案系統應用程式–>檔案系統–>晶元sdio介面驅動。我們需要編寫的只有主函式(main.c)和檔案系統應用程式(fatfs.c)
main函式中新增sdtest()函式。我們在此函式中進行檔案開啟讀寫操作。函式定義在"fatfs.c",並在fatfs.h宣告。
main函式中有關sd部分函式執行順序為mx_sdio_sd_init();-》mx_fatfs_init();-》sdtest();
int
main
(void
)/* user code end 3 */
}
3、f_open建立並開啟檔案「stm32.txt」
4、f_write寫入第乙個文字
5、f_close關閉檔案
6、f_open開啟檔案「stm32.txt」
7、f_read讀取檔案「stm32.txt」
8、f_close關閉檔案
6、f_open再次開啟檔案「stm32.txt」
7、f_write寫入第二個文字
8、f_close關閉檔案
9、f_open開啟檔案「stm32.txt」
10、f_read讀取檔案「stm32.txt」
11、f_close關閉檔案
#include "fatfs.h"
uint8_t retsd;
/* return value for sd */
char sdpath[4]
;/* sd logical drive path */
fatfs sdfatfs;
/* file system object for sd logical drive */
fil sdfile;
/* file object for sd */
/* user code begin variables */
static uint8_t buffer[_max_ss]
;/* a work buffer for the f_mkfs() */
fresult res;
/* fatfs function common result code */
uint32_t byteswritten, bytesread;
/* file write/read counts */
uint8_t wtext=
"this is stm32 working with fatfs"
;/* file write buffer1 */
uint8_t wtext2=
"this is second write"
;/* file write buffer2 */
uint8_t rtext[
100]
;/* file recive buffer1*/
uint8_t rtext2[
100]
;/* file recive buffer2*/
void
sdtest
(void);
/* user code end variables */
void
mx_fatfs_init
(void
)/**
* @brief gets time from rtc
* @param none
* @retval time in dword
*/dword get_fattime
(void
)void
sdtest
(void);
f_close
(&sdfile)
;printf
("10.text close\r\n");
//first read
f_open
(&sdfile,
"stm32.txt"
, fa_read)
;printf
("9.open file\r\n");
f_read
(&sdfile, rtext,
f_size
(&sdfile)
,(uint*
)&bytesread)
;printf
("10.text read:%s\r\n"
,rtext)
;f_close
(&sdfile)
;printf
("10.text close\r\n");
//second write
f_open
(&sdfile,
"stm32.txt"
, fa_write)
;// remove fa_create_always
printf
("11.open file2\r\n");
f_lseek
(&sdfile,
f_size
(&sdfile)-1
);//移動寫入位置到檔案末尾
f_write
(&sdfile, wtext2,
sizeof
(wtext2),(
void*)
&byteswritten)
;printf
("12.fatfs write2\r\n");
f_close
(&sdfile)
;printf
("10.text close\r\n");
//second read
f_open
(&sdfile,
"stm32.txt"
, fa_read)
;printf
("13.open file2\r\n");
f_read
(&sdfile, rtext2,
f_size
(&sdfile)
,(uint*
)&bytesread)
;printf
("14.text read2:%s\r\n"
,rtext2)
;f_close
(&sdfile)
;printf
("10.text close\r\n");
}}/*##-11- unlink the micro sd disk i/o driver ###############################*/
// fatfs_unlinkdriver(sdpath);
}
基於stm32移植FATFS檔案系統
2.ff14a source 下就是需要的檔案。ff.c fatfs模組。ffconf.h fatfs模組的配置檔案。ff.h fatfs和應用程式模組的通用包含檔案。diskio.h fatfs 和disk i o模組的公用包含檔案。diskio.c 將現有disk i o模組連線到fatfs的粘...
STM32掛載SD卡記錄日誌
stm32掛載sd卡記錄日誌 程式主要是在前一篇的基礎上進行。使用cube配置stm32掛載tf卡,請看 記錄日誌主要是將執行中的資料轉換為字串,然後再寫入到sd卡。需要解決兩個問題 程式中各種格式的資料變數轉換為字串 sd卡檔案關閉後再次開啟繼續接著寫。解決第乙個問題是使用函式sprintf 函式...
STM32通過Fatfs建立PDF檔案
上面是我建立的群聊,歡迎新朋友的加入。最近想用mcu去建立乙個pdf檔案,曾嘗試移植hpdf和pdfgen,因為這兩個本就不是為微控制器做的庫,移植過程有點複雜了。後面發現st論壇有個發布了乙個pdflib的庫,便做了一下移植。目錄 1.參考鏈結 2.工程說明 3.效果 doc裡面是參考的原始碼,或...