|
我用单片机驱动一个8G的SD卡,FAT32格式,采用SPI模式,我在SD卡中放了一个2.bin的文件,现在想把他读出来,请教下2.bin的起始字节的地址怎么计算,是用物理扇区编号38000乘以512吗?现在返回的数据都是0xff,下面是读函数:
//读一个扇区,成功,返回0
uint8 MMC_SD_ReadSingleBlock(uint32 sector, uint8* buffer)
{
uint8 r1;
uint16 i;
r1 = MMC_SD_SendCommand(17, sector);//读命令 //read command
if(r1 != 0x00)
return r1;
SPI_CS_Assert();
//等数据的开始
while(SPI_WriteByte(0xff) != 0xfe) //0xfe是SD发送数据的起始数据令牌
for(i=0; i<512; i++)//读512个数据 //read 512 bytes
{
*buffer++ = SPI_WriteByte(0xff);
}
SPI_WriteByte(0xff); //伪crc
SPI_WriteByte(0xff);
SPI_CS_Deassert();
return 0;
}
SD卡的初始化激活什么的都通过了,就是读回的数据为0xff,请教了。
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
阿莫论坛20周年了!感谢大家的支持与爱护!!
曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……
|