OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2871|回复: 5

SD卡读写的问题

[复制链接]

18

主题

75

帖子

0

精华

初级会员

Rank: 2

积分
136
金钱
136
注册时间
2016-12-24
在线时间
29 小时
发表于 2017-2-1 23:40:42 | 显示全部楼层 |阅读模式
5金钱
       在对SD卡进行写的过程,对于单块写的过程应该是CMD7-R1-CMD16-R1-CMD24-R1-设置SDIO-发送数据-读SD_STA-等待programming状态结束,对于单块读和多块读例程上给的代码都有一段:
        errorstatus=IsCardProgramming(&cardstate);
        while((errorstatus==SD_OK)&&((cardstate==SD_CARD_PROGRAMMING)||(cardstate==SD_CARD_RECEIVING)))
        {
                errorstatus=IsCardProgramming(&cardstate);
        }   
为什么我读取的cardstate值一直就是“7”呢?换句话说,SD卡在写完数据后就一直卡在了programming状态,看了下2.0的协议规范,上面说在programming状态下发送读命令是无效的,发送带参数命令也是无效的,然后就有点纳闷了,按程序的意思是,programming状态会自动跳变为其他状态才是啊?这到底是我卡的问题还是其他什么我忽略掉了呢?同时卡读的程序是没有问题的,但是在写完之后接着读就不可以了,这也间接的证明了卡在运行完写命令之后一直卡在了programming状态过不去,还有就是如果说进入到了programming中应该是前面都操作完了而且是正常的才是啊,那卡中数据应该有变化了呀,但为什么我读出来的数据没有任何变化呢?有谁知道用什么办法可以退出programming状态呢(协议上讲CMDD7可以从programming状态中跳到Disconnect状态,可是我试过的情况是命令响应超时!是超时!是协议在逗我吗?!)2.0的协议是英文版的,看得的确不耐烦了,各种跳的看,估计是漏了什么重要的东西,恳请大神们赐教
       最后,请教下有谁有修复SD/TF卡的软件,好像在写的过程中把卡写坏了,电脑认不出来了(大小还看得到),插上电脑就卡死,郁闷了。

最佳答案

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

18

主题

75

帖子

0

精华

初级会员

Rank: 2

积分
136
金钱
136
注册时间
2016-12-24
在线时间
29 小时
 楼主| 发表于 2017-2-1 23:40:43 | 显示全部楼层
回复

使用道具 举报

18

主题

75

帖子

0

精华

初级会员

Rank: 2

积分
136
金钱
136
注册时间
2016-12-24
在线时间
29 小时
 楼主| 发表于 2017-2-3 15:14:08 来自手机 | 显示全部楼层
美人回复啊
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165580
金钱
165580
注册时间
2010-12-1
在线时间
2118 小时
发表于 2017-2-6 19:10:46 | 显示全部楼层
直接用我们例程试试呢?
回复

使用道具 举报

18

主题

75

帖子

0

精华

初级会员

Rank: 2

积分
136
金钱
136
注册时间
2016-12-24
在线时间
29 小时
 楼主| 发表于 2017-2-8 09:09:31 | 显示全部楼层
正点原子 发表于 2017-2-6 19:10
直接用我们例程试试呢?

也是一样的,可以认得到卡,到读写就不行了。原本我写的也是初始化可以过去过去,读可以读出一些乱七八糟的东西(因为没有加入FATS),但写不行,我想所有的响应都是CMD线上的,而数据线上的数据就不一定好了,然后降低了频率,把总线数改成1也是一样,可能是卡坏了,电脑也认不出来,用了程序读出的结果也是说无效的驱动器。
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165580
金钱
165580
注册时间
2010-12-1
在线时间
2118 小时
发表于 2017-2-12 18:51:02 | 显示全部楼层
zhu83453958 发表于 2017-2-8 09:09
也是一样的,可以认得到卡,到读写就不行了。原本我写的也是初始化可以过去过去,读可以读出一些乱七八糟 ...

换卡试试吧
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-9-22 16:15

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表