本人是沈阳大学的一名小白,之前,无论是STM32,还是FATFS,都是小白一个,甚至不理解那是什么东西,但是据说这种技术目前为止好像是读写大容量卡挺费劲,只能64G,就到头了,但是最近接到一个任务就是做一个数据记录仪而且要把这个东西做成128G的。废话不多说,直接来把。

首先你要知道FATFS是一个文件管理系统,看他的手册,分为应用层,底层驱动等等,但是对于我们嵌入式开发者来说,移植他,我们需要的是修改底层驱动!应用他给出的API实现自己的任务。修改底层驱动!应用他给出的API实现自己的任务。修改底层驱动!应用他给出的API实现自己的任务。

1、修改底层驱动

官网下载,需注意他的版本,如果你做32G ,64G,   OK那你下载哪个版本都可以,建议下载低版本,如0.10版本左右的都可以。如果你想做大容量卡,那一定要移植0.12之后的版本,现在我写这篇文章的时候,最新版是0.13a,所以我就简单说一下0.13a。0.13a的底层驱动,也就是你下载下来的有一个diskio.c的文件,你打开。正常的移植,是在这里写或者修改底层驱动,底层驱动是什么呢,例如我这次用的是SDIO操作读写SD卡的,大家都知道,SDIO操作SD卡有两种方式,一个是SPI,一个是SDIO。那我要写的就是这两种中的一个了。我用的是SDIO,因为这种速度块。继续说,当你打开0.13a的diskio.c 的时候,你会发现这帮人TMD写的很随意,这里如果你是个大手你可以自己写好你的底层驱动(就是刚才我说的那个如何通过SDIO操作SD卡),如果嫌费劲,直接拿你开发板给出的例程里的diskio.c(每个嵌入式开发者手里都会有开发板吧?!)因为它给出这个一定是调好的!

然后你的DISKIO.C里,会有很多swicth case 这种情况,把没用的都注释掉。

2、应用它给出的API实现自己的任务

这里就是调用函数,没啥可说的,但要注意几点:

1、你的f_open的打开方式,一定要注意,如果你的while循环里一直都是create always,你想创建下一个文件是不可能的

每次循环到f_open 的时候,他都会新建一个,你之前写过的文件,无论写了什么,写了多少,统统被冲掉,重新新建一个文件

2、断电前一定要f_close你的文件

他确实给出了一个f_syn的文件,刷新数据,但是真正调试时候你会发现他没什么用,如果你的文件一直写写写,最后没有f_close那么恭喜你,当你拔下sd卡放到电脑上时,你的sd卡是没有文件的。这个觉得是FATFS的一个BUG,切记一定要close文件

来人了,先写到这,有机会补完

基于STM32F407平台实现FATFS读写大容量(128G)SD卡的心得相关推荐

  1. Keil MDK STM32系列(九) 基于HAL和FatFs的FAT格式SD卡TF卡读写

    Keil MDK STM32系列 Keil MDK STM32系列(一) 基于标准外设库SPL的STM32F103开发 Keil MDK STM32系列(二) 基于标准外设库SPL的STM32F401 ...

  2. STM32 通过USB接口读写挂载的SD卡(支持fatfs文件系统)

    通过USB接口读写挂载的SD卡 HAL库 标准库 本文以STM32F407为例分别用HAL库(STM32CubeMX)和标准库实现SD卡对fatfs支持,以及通过USB接口读写SD卡.首先看电路连接: ...

  3. sdhc 读写 扇区 linux,SD卡读写扇区注意事项(转)

    在调试SD卡时,大家都喜欢使用扇区进行验证.也就是说,一般都是通过读写扇区数据进行比较,或者读取第0扇区的数据,在通过WinHex软件打开启动扇区进行比较.这种方法对于1G的SD卡或部分2G的SD卡可 ...

  4. android 数据存储----android短信发送器之文件的读写(手机+SD卡)

    本文实践知识点有有三: 1.布局文件,android布局有相对布局,线性布局,绝对布局,表格布局,标签布局等.各个布局能够嵌套的.本文的布局文件就是线性布局的嵌套 <LinearLayout x ...

  5. 利用fatfs文件系统实现了SD卡追加…

    原帖地址:http://www.amobbs.com/thread-5537678-1-1.html 在fatfs文件系统下,实现SD卡的读取追加内容,实现方法是:读取文件.偏移指针.填写内容.追加内 ...

  6. android手机扇区数据读写,磁盘、SD卡、移动磁盘物理扇区读写

    在Windows下把所有的设备都当作文件进行操作,对磁盘的某个扇区读写,可以使用CreateFile()函数.这里不是用"DISK1"."DISK2"等去标识某 ...

  7. 基于FATFS的SD卡存储

    目录 FATFS介绍 配置流程 SDIO_Init() diskio.c的配置 malloc()与free() 文件操作函数 Simple Demo 注意事项 缓冲队列 FATFS介绍 FAT Fil ...

  8. FatFs读写SD卡出现FR_NO_FILESYSTEM解决方法.

    原文地址:http://www.devlabs.cn/?p=226 18 一月 2014 3 起因 去年做了个GPS路径记录器, 将路径息记录于TF卡上, 上了FatFs系统. 刚开始那会虽然偶尔罢工 ...

  9. FatFs读写SD卡出现FR_NO_FILESYSTEM解决方法.(写的好)

    来源:http://www.devlabs.cn/?p=226 起因 去年做了个GPS路径记录器, 将路径息记录于TF卡上, 上了FatFs系统. 刚开始那会虽然偶尔罢工, 但好歹能工作. 后来没时间 ...

最新文章

  1. 扩展存储过程在哪里_北京延庆工业废水处理哪里有
  2. 大型ERP等数据库系统常见几种设计
  3. suse linux 光纤卡重置,SUSE Linux下查看光纤卡号和操作系统的版本
  4. 是AI就躲个飞机-纯Python实现人工智能
  5. SemEval-2020自由文本关系抽取冠军方案解读 (附NLP竞赛常用技巧总结)
  6. 安卓--selector简单使用
  7. Mac OS X 11中的/usr/bin 的“Operation not permitted”
  8. 【Java从0到架构师】日志处理 - SLF4J、Logback、Log4j 2.x
  9. python 网络渗透_python 网络编程(渗透与编程一)
  10. bat脚本 启动另一个bat
  11. cadence SPB16.6原理图库(.olb)集合的库内容列表2
  12. Findbugs异常总汇
  13. 江苏省计算机一级考试难度,浅谈江苏省计算机等级考试(一级除外)
  14. 每一天的邂逅......
  15. python opencv制作隐藏图片
  16. CentOS 7 中 pptpd安装
  17. 【Python】阿里云对象存储OSS图床上传图片
  18. 控制科学与工程(自动化)保研经验【2】——南开、同济篇
  19. 空间向量模型和tf-idf
  20. vue中数据之间的传递用propos

热门文章

  1. c语言程序设计菜鸟教程,C语言菜鸟基础教程之a++与++a
  2. php 输出 csv 单元格内换行
  3. Linux下MKL库的安装部署与使用,并利用cmake编译器调用MKL库去提升eigen库的计算速度
  4. php中 br什么意思,HTML_html中br和br/的区别介绍,answer from stackflow: Simply br - phpStudy...
  5. 智慧党建系统开发,智慧组工党员信息管理平台建设
  6. 关于freemarker静态化,生成html页面乱码的问题(亲测有效)
  7. html文件编码怎么修改,html网页乱码怎么修改
  8. 设置阿里云镜像仓库 Docker下载镜像太慢的解决方案
  9. 魅族Android版本,一直都错怪魅族了?安卓手机系统版本真不是越高越好!
  10. oracle通过指定的时间获取时间所在的季度、上半年、下半年、年的月份、指定月份的上一个月份