huangmengding 发表于 2010-4-7 19:37:18

波仔MP3中SPI_WriteByte问题

还是波仔的MP3程序中


unsigned char SPI_WriteByte(unsigned char val)
{
        SPDR = val;
        while(!(SPSR & BIT(SPIF)));
        return SPDR;
}

----
----
----
unsigned char MMC_SD_ReadSingleBlock(unsigned long sector, unsigned char* buffer)
{
        unsigned char r1;
        unsigned int i,j;
        unsigned char retry=0;

        //SPI_High();
        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个数据   -------------就是在这我只能达到216次再往下就不能跳出循环了
        {
                *buffer++ = SPI_WriteByte(0xff);
        }
   
        SPI_WriteByte(0xff);//伪crc
        SPI_WriteByte(0xff);
       
        SPI_CS_Deassert();
        //SPI_WriteByte(0xff);// extra 8 CLK
        return 0;
}


哪位强悍点的教下我这菜鸟怎么解决这个问题,小弟感激不尽啊
页: [1]
查看完整版本: 波仔MP3中SPI_WriteByte问题