历史上的今天
返回首页

历史上的今天

今天是:2024年09月16日(星期一)

2018年09月16日 | 基于STM32F407平台实现FATFS读写大容量(128G)SD卡的心得

2018-09-16 来源:eefocus

本人是沈阳大学的一名小白,之前,无论是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文件


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


推荐阅读

史海拾趣

CAROLCABLE公司的发展小趣事

在激烈的市场竞争中,CAROLCABLE公司深知技术创新是企业发展的核心动力。因此,公司不断加大研发投入,引进先进的生产设备和技术人才,推动技术创新和产业升级。经过多年的努力,CAROLCABLE成功研发出了一系列具有自主知识产权的高性能线缆产品,这些产品在传输速度、稳定性和耐用性等方面均达到了行业领先水平。

随着产品技术的不断升级,CAROLCABLE开始积极拓展国内外市场。公司参加了多个国际电子线缆展会,与全球同行交流学习,寻找合作机会。同时,CAROLCABLE还加强与国内大型电子企业的合作,为其提供定制化的线缆解决方案。这些举措不仅为公司带来了更多的商机,也进一步巩固了CAROLCABLE在电子线缆行业的领先地位。

这两个故事仅是对CAROLCABLE公司发展起来的简要描述,实际上,公司的成长历程中还有许多值得探讨的细节和里程碑事件。如需了解更多关于CAROLCABLE公司的故事,建议查阅相关新闻报道或公司官方资料。

DAQ Electronics LLC公司的发展小趣事

随着技术的不断成熟和产品线的丰富,DAQ Electronics LLC公司开始积极拓展市场。公司通过与科研机构、高校以及企业建立合作关系,将数据采集技术应用于更多领域。在科学研究领域,DAQ Electronics LLC公司的数据采集设备为实验数据的准确获取提供了有力保障;在工业生产领域,其设备则帮助企业实现了对生产过程的实时监控和数据分析。

Heidenhain Corp公司的发展小趣事

随着智能制造的兴起,海德汉公司积极转型为智能制造解决方案提供商。该公司与多家电子企业合作,共同探索智能制造的新模式和新路径。通过集成海德汉的数控系统、自动化设备和智能管理软件,这些企业成功构建了高效、灵活、智能的生产体系。海德汉的智能制造解决方案不仅提高了生产效率和产品质量,还降低了生产成本和能耗,为电子行业的可持续发展做出了积极贡献。

南京绿芯(Grenergy)公司的发展小趣事

在半导体制造这一高端电子领域,海德汉公司也展现出了其强大的技术实力。某国际领先的半导体制造商在研发新一代芯片制造设备时,选择了海德汉的高精度编码器作为关键部件。海德汉编码器以其卓越的稳定性和精度,确保了芯片制造过程中的高精度定位和运动控制,为半导体制造商提供了可靠的技术保障。这一合作不仅提升了半导体制造设备的整体性能,也进一步巩固了海德汉在高端电子制造领域的市场地位。

Avic公司的发展小趣事

Avic公司积极参与中国民用飞机项目的研发和生产。通过与国内外合作伙伴的紧密合作,公司成功研制出了多款具有市场竞争力的民用飞机。这些飞机的成功研制和生产,不仅提升了中国民用航空工业的水平,也为国内外航空公司提供了更多优质的航空产品选择。

Exel Microelectronics Inc公司的发展小趣事

在XXXX年,Exel Microsystems Inc迎来了一次重要的技术突破。公司成功研发出了一款高性能、低功耗的微控制器芯片,这款芯片在行业内引起了广泛关注。该芯片不仅满足了当时市场对高性能微控制器的需求,而且其低功耗的特性也大大降低了设备的运行成本。这一技术突破为Exel赢得了大量订单,公司的市场份额也得到了显著提升。

问答坊 | AI 解惑

关于GetModuleFileName一直返回NULL的问题

下面这个函数目的是获取当前运行的应用程序的目录,但使用GetModuleFileName返回的总是0.不知道为何。 bool GetCurrentPath(LPTSTR szPath)   {           HMODULE handle = GetModuleHandle(NULL); &nbs ...…

查看全部问答>

请教两个问题

1、Ndis库没有向nids微端口驱动的接口函数(如初始化函数等)下发irp,那代码中的irp是从哪里来的?ndis微端口驱动自己组建的吗? 2、如何看到ndis微端口驱动中irp中包含的是什么板侧的指令?如断链指令…

查看全部问答>

关于驱动开发的就业前景,待遇

我,大二的小童鞋,软件工程 这个暑假打算在实验室好好研究一下驱动程序的开发,以后也想在这一块发展 不知目前搞驱动开发的就业如何,待遇咋样,过来人帮忙给分析一下下 小弟这里多谢了…

查看全部问答>

3G工程师成为大学毕业生择业首选

中国3G时代即将到来,社会对3G嵌入式软件人才的渴求使3G人才已经成为业界关注“3G软环境”的焦点之一。目前,我国的3G核心人才仅有不足万人,而且基本上都被几大运营商和设备厂商所掌握。广大手持端设备制造商所急需的嵌入式开发人才、软件开发商所 ...…

查看全部问答>

大家在做网络设计时候一般是用哪款工具来调试网络程序的?

准备用44b0来学习网络通讯软件编程序. 好像有一款工具是专门探测电脑网络数据.就象Bus Hound看USB数据一样. 但不记得这款软件的名称. 大家在做网络设计时候一般是用哪款工具来调试网络程序的?…

查看全部问答>

大虾们推荐一本关于制版方面经典的书呗?

不是那种进阶版的;就是普通的入门提高级的。讲解环境最好是DXP,或者往上版本的。谢过了。…

查看全部问答>

现在还有人用UPSD么?

                                  …

查看全部问答>

STM32中CRC模块的CRC_IDR寄存器作什么用?

                                 CRC_IDR寄存器不知道有什么用处?…

查看全部问答>

STM8勘误表去那找,谢谢(最好直接给出链接)

                                 RT…

查看全部问答>