本帖最后由 aoshi0603 于 2011-8-22 09:22 编辑
分享在STM32F103VE的片内Flash(512K)使用FatFS系统系统。
在我所做的测量仪器需要长年运行,并且保存数据和查寻数据,刚开始我是把数据按一定格式存放在片内Flash中的,但是由于数据种类多,还需要查找历史数据和参数,有些复杂,做的并不好。后来想用文件系统,据说FatFS挺不错的,就在开发板上学习了一下,使用的NAND Flash。
暂时仪器板子上没有放NAND Flash,所以就先在片内Flash上使用FatFS,这个搞了两天,终于弄出来了,和大家分享,源码在附件中。
思路是在STM32片内Flash最后100页(可宏定义设置区间和大小)使用FatFS, 模拟NAND Flash把片内Flash做为一个zone,每页做为一块(block),每页分成4份(每份为一段sector, 512字节)。
应用示例:
FATFS fs;
FIL file;
FRESULT res;
char array[512]={0}, *parray = array;
res = f_mount(0, &fs);
res = f_mkfs(0 , 0, _MAX_SS);
res = f_open(&file, "data.txt", FA_OPEN_ALWAYS | FA_WRITE | FA_READ);
f_printf(&file, "%s\n", "Success"); /* "Success" */
parray = f_gets(parray , 8, &file);
LCMTextOutExt( 0, 0, parray );
f_close(&file);
f_mount(0, NULL);
|