|
回复 楼主 qiuzhi339 的帖子
仁兄你好,今天我解决了我遇到的问题,现在将我的所知道的告诉你:
你说之前的步骤中,命令运行返回正确,你是指CMD0复位命令返回么,要是这一步返回正确的话,可以说明通信硬件没有问题.........
个人觉得,你需要考虑以下几点:
1)CMD55 + ACMD41的命令是否正确,CMD55 -- 0x77,ACMD41,--0x69;我在这儿吃了亏,马虎了,结果耽搁了1下午时间;
2)确认你的卡类型。很多其实不是SD卡,即使是sd卡,sd1v1 和v2 初始化参数是不一样的,这个我也有些模糊,暂时搞不懂为什么,要是你看到你的卡上面 有hc的标志,那肯定说明,acmd的参数是要修改的,具体修改为:unsigned char acmd41[6] = {0x69, 0x40, 0x00, 0x00, 0x00, 0x95};
3)要是以上都不行的话,你可以试着按着这个顺序初始化一下:cmd0 - cmd8 - cmd55 - cmd41,
多试几次,单步调试看看
我是用stm32控制的,刚刚调通,还没有来得及整理程序,有机会的话想把我遇到的问题和理解的东西分享给 奋斗这个战线上的 程序猿们, 共勉之
[ 本帖最后由 yatoo 于 2012-10-11 21:40 编辑 ] |
|