本帖最后由 xiao16ma 于 2013-2-22 10:51 编辑
我用的飞思卡尔MCF51JM128的单片机,使用该单片机的SPI模块,在SD卡的初始化过程中,发送CMD0和CMD8均能收到正确应答,但是循环发送CMD55+ACMD41时,第一次发送均收到0x01,但是第二次发送时,CMD55返回0x01,AMCD41返回0xFF,之后再循环发送均是返回0xFF,望各位大神给点建议,或是给推荐一点相关的书籍、网站、资料等 不胜感激!
单片机SPI收发数据的程序
UINT8 SPI_ReadWriteByte(UINT8 TxData)
{
UINT8 RxData = 0,i,temp,_data;
//等待发送缓冲区空
while(!SPI1S_SPTEF);
//发一个字节
SPI1DL=TxData;
/**/
//等待数据接收
while(!SPI1S_SPRF);
//取数据
RxData = SPI1DL;
return (UINT8)RxData;
}
现在的问题是 发送ACMD41之后,SD卡会运行一段时间,但是最终无法初始化成功,执行完ACMD41之后,发其他任何指令SD卡均不相应,ACMD41的返回值也不正确!
|