本帖最后由 pengyang73 于 2012-7-15 17:13 编辑
问题还没有解决,我的代码如下,请各位大虾帮我检查一下,谢谢!
说明:
1)前面初始化的代码省略了
2)SPI_SD_SendCommand不含CS拉高拉低的操作,但包含了CS拉低后和命令结束后的延迟等待
//////////////////////////// 读CID ////////////////////////////////////////////////
retry=0;
SPI_SD_CS_LOW();
do {
response = SPI_SD_SendCommand(CMD10,0,0xff);
retry++;
} while ((response!=0x00)&&(retry<400));
if (response==0x00) printf(" CMD10 = 0x%x retry=%d\r\n",response,retry);
else {
printf(" CMD10 sent failed! 0x%x\r\n",response);
return;
}
retry=0;
do {
response = SPI_SD_SendReceiveByte(Dummy_Byte);
retry++;
} while ((response!=0xFE)&&(retry<0xFFFE));
if (response==0xFE) printf(" 数据令牌 = 0x%x retry=%d\r\n",response,retry);
else {
printf(" 获取数据令牌 =0x%x failed! retry=%d\r\n",response,retry);
return;
}
for (i=0;i<16;i++) CID=SPI_SD_SendReceiveByte(Dummy_Byte);
SPI_SD_CS_HIGH();
for (i=0;i<16;i++) printf("CID[%d] = 0x%x\r\n",i,CID);
|