最近在弄51上通过SPI模式对SD卡读写。。。初始化代码偶尔能成功,偶尔不能成功,郁闷啊。。。do
{
r1 = SD_SendCommand(CMD55, 0, 0);
if(r1!=0x01)return r1;
r1 = SD_SendCommand(ACMD41, 0x40000000, 0);
if(retry>200)return r1; //超时则返回r1状态
}while(r1!=0);
单步调试的话,41这个指令,一般最后能得到0x00这个正确响应,如果程序直接运行的话,程序就在这里面循环,不能得到0x00,一般是01,ff...有时候程序直接执行,也能得到00。。
不知道玩过的人有没有遇到过这个问题,怎么解决的啊。。。。 |