历史上的今天
返回首页

历史上的今天

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

2018年09月16日 | STM32CubeMX基于SD卡的FATFS文件系统测试

2018-09-16 来源:eefocus

1.问题描述:使用STM32CubeMX配置SD基于SD卡的FATFS文件系统,并进行测试文件的读写。

http://bbs.elecfans.com/forum.php?mod=viewthread&tid=913752&extra=


(2)测试环境搭建: 
硬件图就不发了,基本都是一样的。 
I.Stm32CubeMX配置:下面是主要配置,其中SD等部分配置可参考前一文章或者自行下载源码查看。

首先是选择开启FATFS,勾选SD Card。

这里写图片描述

接着是Configuration界面。

这里写图片描述

配置中间层FATFS选项。

这里写图片描述

然后下图我开启的是动态的时间戳,硬石的教程里用的是静态的,实际测试两者均能够通过。至此FATS设置基本上完毕,其他默认就好。由此可以体会到这软件是多强大。

这里写图片描述

由于开启长文件名,且是将缓存放在STACK中的,所以对应在设置工程选项时,堆部分空间也要设置大一点。在cube软件里按ALT+P即可调出设置界面。主要更改下图Minimum Stack Size的值即可。

这里写图片描述


II.测试代码: 
有教程的好处就是拿别人敲好的直接复制过来就可,然后根据具体情况调试更改。嘿嘿

下面先是变量申请:

这里写图片描述

然后就是测试代码咯: 
画横线的部分是对源码做出的主要改动,硬石源码是通过cube生成工程后自己再添加了很多自己的部分。这里本人直接使用软件生成初始化函数,用自带声明的参数去进行判断。不然每一次重新生成工程都要手动屏蔽一大堆代码想想都烦。

这里写图片描述

但做到这儿,满以为搞定完成,但实际测试时系统卡在下图这个地方。

这里写图片描述

经DEBUG后发现是系统滴答定时器中断没有进去,仔细检查代码后发现是自己智障勒。。。实际使用时,是可以通过的。但我本身基本不使用系统自带的延时函数,所以直接对这个函数用自己的延时函数重构了。毕竟系统提供的这个延时函数并不是很好。如果有要使用系统自带的延时,可以把测试代码main中的delay_init()屏蔽即可。 
这里写图片描述

https://pan.baidu.com/s/1nvtZhVV 密码 : 416v 
然后是测试代码: 
链接:https://pan.baidu.com/s/1qYmD2VU


推荐阅读

史海拾趣

ABCircuits公司的发展小趣事

随着全球环保意识的提高,绿色电子产品逐渐成为市场的新宠。ABCircuits公司敏锐地捕捉到这一趋势,开始将绿色环保理念融入产品研发和生产中。公司积极采用环保材料和工艺,减少生产过程中的污染排放。同时,ABCircuits还推出了多款节能高效的电子产品,深受消费者喜爱。这种绿色环保的发展理念不仅为公司赢得了良好的社会声誉,也为公司的可持续发展奠定了坚实基础。

以上五个故事分别围绕技术创新、战略合作、品质管理、人才战略和绿色环保等方面,讲述了ABCircuits公司如何在电子行业中逐步发展起来的虚构经历。这些故事旨在展示一个成功企业在发展过程中可能面临的挑战和机遇,以及如何通过不断创新和努力来实现持续发展。请注意,这些故事纯属虚构,不代表任何真实公司的经历。

Bharat Electronics Ltd公司的发展小趣事

Bharat Electronics Ltd(以下简称BEL)的创立可追溯到印度硅谷班加罗尔,那里不仅是科技创新的摇篮,也是BEL扎根生长的沃土。自1954年起,BEL便在飞利浦和大盾的支持下成立,初期主要生产ECC81、ECC82、ECC83、EL34等电子管,为国防事业提供关键技术支持。其成立之初便与印度国防部紧密合作,成为印度军工电子领域的领军企业,为国家的国防安全奠定了坚实的基础。

Dantona Industries公司的发展小趣事

Dantona Industries非常重视人才的培养和团队建设。他们深知,一个优秀的团队是公司发展的基石。因此,公司投入大量资源用于员工培训、激励机制建设等方面。他们定期组织技术研讨会、团队拓展活动等,提升员工的业务能力和团队凝聚力。同时,公司还建立了完善的晋升机制和薪酬体系,确保员工能够享受到与公司共同成长的成果。这种以人为本的管理理念为公司的持续发展提供了有力保障。

FERYSTER公司的发展小趣事

随着市场的不断扩大,FERYSTER公司意识到产品质量对于企业的重要性。因此,公司投入大量资金用于提升质量管理体系,引入国际先进的生产设备和检测仪器。同时,公司还加强了员工的质量意识培训,确保每一个环节都符合质量标准。这些措施的实施,使得FERYSTER公司的产品质量得到了显著提升,赢得了客户的广泛赞誉。

Crosspoint Solutions公司的发展小趣事

在电子行业中,产品质量是企业生存和发展的关键。Crosspoint Solutions公司深知这一点,因此始终将品质管理放在首位。公司建立了严格的质量检测体系,从原材料采购到产品出厂的每一个环节都进行严密把控。这种对品质的执着追求赢得了客户的信任和好评,使公司在市场上树立了良好的口碑。

DESCO公司的发展小趣事

为了进一步提升竞争力,DESCO公司进行了多次收购和资源整合。例如,在XX年,公司成功收购了美国一家知名的防静电产品制造商,获得了其先进的生产技术和销售渠道。这次收购使DESCO公司的产品线更加丰富,市场覆盖面更加广泛。此外,公司还加强了与其他企业的战略合作,共同开发新产品、拓展新市场。

问答坊 | AI 解惑

选择第一份工作的10条标准 [转]

每个毕业生都难免会得一次毕业焦虑症, 无论你此刻面对离校的心情是迫不及待还是紧张不安--就好像过山车已经慢慢爬升到了那个转折性的顶端, 你知道在接下来的那么几秒之后就会进入一个飞速运转的轨道, 而你不知道自己是否已经做好了足够的准备来应对 ...…

查看全部问答>

如何设置WinCE 6.0工具栏位置

新建一个C#的WINCE6.0 Device Application,ToolBar默认是在form的顶端,我想将他放在form底部,请问该如何实现啊? 我没找到可以设置的属性(如winform中的Dock),我是新手,多谢大家指教!!…

查看全部问答>

如何读取U盘扇区并对U盘进行加解密?

如题,如何在一个U盘过滤驱动里读取U盘扇区并对U盘进行加解密? 请大家指点一下…

查看全部问答>

p1.0口做输入口,怎么采集二级管的状态呢?

p1.0口做输入口,怎么采集二级管的状态呢?二极管有亮和灭两种状态。有外围电路吗?…

查看全部问答>

wince 部署的问题

我通过vs2005 部署到wince板子上  但是重启又没了 我新建的文件夹也没了. 现在有一个 sd存储卡, 要不就写入到卡里 ,让他开机自动运行,但是 不知道怎么弄?…

查看全部问答>

.NetMicro Framework在STM32(Cortem-M3)平台上移植

1、【.Net Micro Framework PortingKit - 01】移植初步:环境搭建 http://blog.eeworld.net/yefanqiu/archive/2010/01/01/5117554.aspx 2、【.Net Micro Framework PortingKit - 02】STM3210E平台构建 http://blog.eeworld.net/yefanqiu/archi ...…

查看全部问答>

如何在串口通信中接收并判断十六进制数据的问题

需要接收十六进制的数据(如:8101020304FF),收到并判断命令是否正确,但是小弟不知道如何判断,请各位大侠指教。 接受函数如下: DWORD CPSerialPort::ReadPort(char *data,int length) {         BOOL fReadState; &n ...…

查看全部问答>

关于WM5上利用Adobe的控件和库实现Flash播放器

之前有贴,回复后无奈顶不上来,因为非常非常急,所以再问 【请问有没有人往WINCE下移植FLASH播放器?   】 http://topic.eeworld.net/u/20070702/14/9d45b749-db60-4df0-8c28-e1e445885589.html?seed=290424281 关于WM5上利用Adob ...…

查看全部问答>

(急切求助)关于手机开发的几个基础问题(在线等)

大家好啊,向大家请教几个关于手机开发的问题: (1)最近想用手机连电脑来实现文字短信的收发, 不知道用什么样的手机比较实惠,是否只要手机可以连接电脑就可以, 还需要别的SDK文件么? (2)还想开发一些手机游戏来刷手机系统,该选择什么型号 ...…

查看全部问答>

关于stm32的systick的中断优先级的问题?

请问stm32的systick的中断优先级在哪设置? 默认的优先级是多少?我怎么没有找到systick的中断优先级的设置?? 高手指点…

查看全部问答>