| 
 
| 我做的SD卡的fat32文件系统,普通的正常读写没有任何问题,譬如利用欧冠测试数据写入到某个扇区,然后回读比较,结果均正常,读取硬件信息,结果正常,但是读取BPB数据就不正常:512BYTE的0扇区数据,前510全为0,理论上不正常,后面两位为0x55,0xaa,结果又正常。<br /><br />我现在怀疑可能是我读取BPB扇区的位置不对,如果有哪位知道是在哪个位置读取的请指教一下~~<br /><br />下面有读取BPB数据的程序,请大虾帮忙分析分析~~~<br /><br />void fnSD_InitDrive(void)<br />{<br />    MMC_read_sector(0,buffers.currentsector.u8data);//在0扇区处读取BPB数据<br />    buffers.SectorCurrentlyLoaded=0xFFFFFFFF;<br />    <br />}<br /><br />uint8_t MMC_read_sector(uint32_t addr,uint8_t *Buffer)<br />{<br />    uint8_t temp;<br />    uint32_t i;<br />    <br />    SPI_TransferByte(0xff);<br />    temp = Write_Command_MMC(MMC_READ_BLOCK,addr<<9);<br />    if(temp != 0x00)<br />    {<br />        return(READ_BLOCK_ERROR);<br />    }<br />    <br />    while(SPI_TransferByte(0xff) != 0xfe);<br />    <br />    for(i=0;i<512;i++)<br />    {<br />        *Buffer++ = SPI_TransferByte(0xff);<br />    }<br />    SPI_TransferByte(0xff);<br />    SPI_TransferByte(0xff);<br />    <br />    return (1);<br />}<br /> | 
 |