lhwaizhu 发表于 2012-9-21 19:52:54

请教关于SD卡中地址的问题

我用单片机驱动一个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,请教了。
页: [1]
查看完整版本: 请教关于SD卡中地址的问题