SD卡应答格式

2019-08-12 17:34发布

SD卡应答格式里有48位,为什么在接受应答数据的时候只有8位(比如00、01、05、FF),这8位具体是哪8位啊
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
12条回答
qiuzhi339
2019-08-13 05:08
嗯,明白了。
还有就是我发送 CMD0、CMD8,这两个命令的应答都是正确的,CMD55+ACMD41 的应答却一直是 0x01(其中 CMD55 的应答是正确的),这说明 SD 卡在空闲状态吗?这种情况可能是什么原因,下面是发送 CMD55+ACMD41 的代码


while ( 0x00 != response )      
{
SD_CS_0;       //每次启动总线传输,片选引脚必须保持低电平  
SdCommand( 0x37, 0x000001AA, 0xFF );         //发送CMD55命令
response = SdResponse( );      //接收SD卡应答到response
SD_CS_1;      //总线传输结束,片选引脚置高
SdWrite( 0xff );                             //总线传输结束后,需要再给8个时钟 

if(0x01 != response)
{
                                      printf( "ACMD55 response is 0x%x ",response );
printf( "CMD55 response error " );  //通过串口1打印输出"CMD55 response error "  
}  

SD_CS_0;      //每次启动总线传输,片选引脚必须保持低电平
SdCommand( 0x29, 0x41000000, 0xFF );         //发送ACMD41命令
response = SdResponse( );      //接收SD卡应答到response
SD_CS_1;      //总线传输结束,片选引脚置高
SdWrite( 0xff );                             //总线传输结束后,需要再给8个时钟

i++;
if ( i>10000 )
{
printf( "ACMD41 response is 0x%x ",response );
printf( "ACMD41 response error " );
return 1;
}  
}
printf( "ACMD41 response is 0x%x ",response );

一周热门 更多>