使用STM32 SDIO方式读写SD卡,使用的是官方的历程

2019-07-21 04:36发布

求助各位,当前的项目要求每200ms内需要完成一次512字节的写入任务,使用的是STM32F207 的SDIO四位模式,基本的写入功能已经实现,现在的问题是总会有几次写入的时间会超过200ms甚至达到600ms左右,调了好久不知道原因,请大神指导...使用的是威刚的class 10的tf卡
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
正点原子
1楼-- · 2019-07-21 09:35
SD卡写时间,有时候确实不可预期。
建议你做buffer写入。
比如,200ms写512字节,你可以做1个2秒钟的缓冲,也就是5120字节,做双缓冲5120*2,A,B两个缓冲。
A满了以后,写B缓冲,同时将A缓冲的内容写到SD卡。
然后B满了,再切回A,依次循环。
zhao305149619
2楼-- · 2019-07-21 12:14
 精彩回答 2  元偷偷看……
xzp001122
3楼-- · 2019-07-21 14:56
回复【3楼】正点原子:
---------------------------------
的确用原子哥的思路解决了这个问题,但是在文件系统上遇到了新问题,我是用照子目录的方式管理文件,每个文件夹中有128个文件,在写入数据的时候会有,将簇的结束信息写入到子目录引导区中的情况导致子目录写入的文件丢失,不知大家有没有遇到过这样的情况?
正点原子
4楼-- · 2019-07-21 18:27
回复【4楼】xzp001122:
---------------------------------
没遇到过。
Rhm_AC
5楼-- · 2019-07-21 21:27
正点原子 发表于 2014-9-9 18:23
SD卡写时间,有时候确实不可预期。
建议你做buffer写入。
比如,200ms写512字节,你可以做1个2秒钟的缓冲, ...

请问这个双缓冲是指在STM32里设置两个缓存数组,然后交替将他们写入SD卡吗?谢谢

一周热门 更多>