打印
[STM32F4]

STM32F401RE-Nucleo开发分享'^_^'(SD & FATFS)

[复制链接]
1969|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
小浣熊|  楼主 | 2014-10-18 12:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这回分享一下SD卡与文件系统的例程,先上资料:
1,SD卡以及文件系统相关资料:(更多的资料还靠大家到网上淘,比如原子哥的战舰开发板就有不少资料)SD%26FATFS资料.zip
2,代码:Demo3.zip
这次上传的代码把另一个库文件夹(Middlewares)也已经上传了,这样所有的库应该就已经完整了,高手们也可以不用把后面的帖子看完,直接就跑吧
这个功能看起来实现起来不容易,不过ST提供的库已经实现了一个文件系统的移植,并且还有一个电子相册的实现例程(运行在Adafruit shield),我们参照这个代码实现起来就会容易多了,与非网上还有这个视频的,给个地址(点击标签图片进入)
我这块板与Adafruit shield基本没有区别,都是使用SPI驱动的,只需要修改一下引脚就OK了,下面看一下官方代码的文件结构吧:

首先文件系统的内核,3个文件,不管什么时候都是不需要改的,直接导入就行。sd_diskio.c是ST编写的驱动,我们也直接添加进去,不用修改,真正对SD卡的操作都是在stm32_adafruit_sd.c中实现的,因为我们也是用SD卡,所以其实也是不用修改的,最后就是文件stm32f4xx_nucleo.c中对SPI的配置了,我想说的是,这也是一样 的,好吧,这似乎就是我们唯一要做得事情了:改引脚。。。不得不说,这是我移植文件系统最简单的一次了,底层几乎什么代码都不用敲了,直接复制粘贴就行!我想这也应该是ST想实现的目标吧,让使用STM32变得轻而易举(代码我都给你写好了,你就用吧!一定要记得买我们的芯片呦~)当然了,要用到我们自己的工程还是需要我们自己整理的,而且对于初学者代码还是要好好读一读,理解一番的,毕竟还是骗不了自己,懂不懂自己心里有数,玩了,也要学了(一堆废话完)
本次提供的代码与这个也是大同小异的,SPI配置也是添加在了stm32f4xx_nucleo.c中,大家具体的看代码,文件系统的配置都是在ffconf.h中,每个项目都有独立的配置文件,不能共用。
注意:1,要使用中文文件名支持的时候是要添加cc936.c的
2,长文件名支持需要另开辟数组。
3,记得在stm32f4xx_hal_conf.h中去掉支持SPI的注释,不然编译会出错的。
4,启动文件中要把栈调大一点比如改成 Stack_Size      EQU     0x900;
5,diskio.c中的函数DSTATUS disk_status(BYTE pdrv)直接return 0;就行了
范例提供了两个,两个main文件,选不同的添加进去就行了。
一个是在SD卡中新建一个STM32.TXT文件,并写入一些内容,再读出内容进行比较,所有操作均测试通过。就不贴图啦。
另一个就是官方例程Demonstrations的实现了,修改不大,另外把摇杆控制改成了按键控制,用于切换自动与手动模式以及上下张图片。
(注意,这里只能显示128*160,色彩深度为16位的BMP图片,代码提供了几张这类图片供测试。图片解码会在后面介绍)
http://v.youku.com/v_show/id_XODA0NDkzMzc2.html
视频上传很坑爹,转码很坑爹,发布很坑爹,天哪!都好坑爹!
沙发
mmuuss586| | 2014-10-18 21:04 | 只看该作者
401的,楼主试验过吗?

使用特权

评论回复
板凳
tianli1980| | 2014-10-30 22:03 | 只看该作者
楼主没用stm32cubemx配置吗?!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

528

主题

2095

帖子

8

粉丝