[STM32] STM32 读写SD卡求助

[复制链接]
2674|5
 楼主| xzp001122 发表于 2014-6-5 16:20 | 显示全部楼层 |阅读模式
向SD卡的写入时候需要每100ms写入一下,采用的fatfs文件系统,现在写入一段时间之后总会进入
cmdresp1()中的SDIO->STA为 0x00000800即CMDACT 循环中,导致系统其他功能无法继续完成。求大神指导,传输时钟使用的4M,一位模式,四位模式都会出现这种情况
gxliu08 发表于 2014-6-5 21:20 | 显示全部楼层
100ms间隔写的数据量多大?
 楼主| xzp001122 发表于 2014-6-5 21:47 来自手机 | 显示全部楼层
gxliu08 发表于 2014-6-5 21:20
100ms间隔写的数据量多大?

512字节
 楼主| xzp001122 发表于 2014-6-5 21:49 来自手机 | 显示全部楼层
用的是16g class10的卡…好几张不同牌子的都试过…都有这个问题
gxliu08 发表于 2014-6-6 09:38 | 显示全部楼层
本帖最后由 gxliu08 于 2014-6-6 09:42 编辑

512字节的数据量不会造成问题,STM32的SDIO没问题的,可以读写SHDC,用4位总线24MHZ工作在DMA模式都可以。要注意初始化,在配置的时候, 一开始的时候,需要有至少发74个时钟使SD卡初始化(满足2.0规范)。其次必须加入流控,避免出现数据出错。SD卡自己处理命令需要延时,在你的代码里最好加适当延时。STM32通过SDIO操作SD卡是可以的,这点不用担心。
 楼主| xzp001122 发表于 2014-6-6 15:11 来自手机 | 显示全部楼层
我试过了…好像是流控没开的问题…而且有些函数需要自己加点延时…感谢您的帮助
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

6

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部