原子哥,遇到SD卡初始化过程中返回错误,不知道究竟怎么回事,我用的是micro SD.
错误现象:
发CMD8返回0x01,接着处理四个字节,do{再发CMD55,返回0X01,发CMD41,返回错误,还是0X01}while(r1)
循环后一直返回错误,r1=0xff.
代码如下:
if(r1==0X01)
{
if(SD_SendCmd(CMD8,0x1AA,0x87)==1)//SD V2.0
{
for(i=0;i<4;i++)
buf=SD_SPI_ReadWriteByte(0XFF); //Get trailing return value of R7 resp
if(buf[2]==0X01&&buf[3]==0XAA)//卡是否支持2.7~3.6V
{
retry=0XFFFE;//retry=0X01;
do
{
r1=SD_SendCmd(CMD55,0,0X00); //发送CMD55
if(r1!=0x01)
{
return r1;
}
r1=SD_SendCmd(CMD41,0x40000000,0X00);//发送CMD41
}while(r1&&retry--);
程序死在最后一个do{}while(r1&&retry--),r1返回值一直都是0xff.
麻烦大侠求指点啊!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
---------------------------------
是啊,一直不明白,低功耗模式是什么意思?
---------------------------------
那是因为我的项目中用到的一种让主机休眠的模式,该模式下,SD卡的电源没有上电的原因。
一周热门 更多>