[源码分享]在STM32的片内Flash使用FatFS文件系统

[复制链接]
 楼主| aoshi0603 发表于 2011-8-22 08:54 | 显示全部楼层 |阅读模式
本帖最后由 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字节)。

应用示例:

  1.   FATFS fs;
  2.   FIL file;
  3.   FRESULT res;
  4.   char array[512]={0}, *parray = array;
  5.   
  6.   res = f_mount(0, &fs);
  7.   res = f_mkfs(0 , 0, _MAX_SS);
  8.   res = f_open(&file, "data.txt", FA_OPEN_ALWAYS | FA_WRITE | FA_READ);
  9.   f_printf(&file, "%s\n", "Success");        /* "Success" */
  10.   parray = f_gets(parray , 8, &file);
  11.   LCMTextOutExt(  0, 0, parray );
  12.   f_close(&file);
  13.   f_mount(0, NULL);
复制代码

App.rar

43.55 KB, 下载次数: 3651

评分

参与人数 1威望 +1 收起 理由
sjnh + 1 这个一定要顶

查看全部评分

bili 发表于 2011-8-22 09:05 | 显示全部楼层
cool!
swx2010 发表于 2011-8-22 09:10 | 显示全部楼层
楼主的精神是需要表扬的
lou0908 发表于 2011-8-22 22:03 | 显示全部楼层
牛X的人
txcy 发表于 2011-8-23 21:35 | 显示全部楼层
多谢分享
xiangqin59 发表于 2011-11-9 13:59 | 显示全部楼层
多谢分享
baidudz 发表于 2011-11-9 18:25 | 显示全部楼层
需要的就是这样的源码啊,多谢分享
秋天落叶 发表于 2011-11-9 23:13 | 显示全部楼层
正需要这样的源码
yjwpm 发表于 2011-11-10 10:16 | 显示全部楼层
把完整的工程也发上来吧。。。。
dfsa 发表于 2011-11-10 19:02 | 显示全部楼层
鼓励共享,特别是源码的共享
火箭球迷 发表于 2011-11-10 22:49 | 显示全部楼层
很有用的源码
skyfight 发表于 2011-11-11 11:26 | 显示全部楼层
支持一下
lixiaoxu2meng 发表于 2011-11-11 13:07 | 显示全部楼层
介于牛A 与牛C之间 帮顶:lol
 楼主| aoshi0603 发表于 2011-11-11 13:12 | 显示全部楼层
本帖最后由 aoshi0603 于 2011-11-11 13:27 编辑

把附件里的.c添加进工程里,必要的头文件大家可以自已写。
我是建立一个includes.h文件加在工程里,includes.h文件存放工程里的所有头文件:
/********************************/
/*     Cotex-M3的特殊代码       */
/********************************/
#include "stm32f10x_lib.h"
#include "stm32f10x_it.h"
/********************************/
/*      FatFS文件系统  */
/********************************/
#include "integer.h"
#include "diskio.h"
#include "ffconf.h"
#include "ff.h"
/********************************/
/*      STM32 Flash  */
/********************************/
#include "Flash.h"

添加好头文件后就可以直接按照上面示例在工程里使用就可以了。
10# yjwpm
无冕之王 发表于 2011-11-11 17:45 | 显示全部楼层
很好的源码
yybj 发表于 2011-11-11 22:58 | 显示全部楼层
不错的源码
pkat 发表于 2011-11-13 19:42 | 显示全部楼层
多谢楼主分享源码
becareful 发表于 2012-2-1 15:27 | 显示全部楼层
牛人啊
byrin 发表于 2012-2-2 20:20 | 显示全部楼层
楼主,费心了!!!
byrin 发表于 2012-2-2 20:20 | 显示全部楼层
楼主,费心了!!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

113

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部