|
发表于 2009-12-25 11:45:26
|
显示全部楼层
调了三天,icc iar 都试了,发觉要改成改成buffer = SPI_WriteByte(0xff);////不知是不是icc 或iar的原因,郁闷得很
//读一个扇区
uint8 MMC_SD_ReadSingleBlock(uint32 sector, uint8* buffer)
{
uint8 r1;
uint16 i;
//uint8 retry=0;
r1 = MMC_SD_SendCommand(17, sector<<9);//读命令
if(r1 != 0x00)
return r1;
SPI_CS_Assert();
//等数据的开始
while(SPI_WriteByte(0xff) != 0xfe);//if(retry++ > 50){SPI_CS_Deassert();return 1;}
for(i=0; i<512; i++)//读512个数据
{
*buffer++ = SPI_WriteByte(0xff);////改成buffer = SPI_WriteByte(0xff);////
} |
|