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

[复制链接]
44362|196
手机看帖
扫描二维码
随时随地手机跟帖
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字节)。

应用示例:
 
  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);

App.rar

43.55 KB

评分
参与人数 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

粉丝