void SPI_SendByte(INT8U byte)//向SD卡送入数据 { INT8U i ; for(i=0;i<8;i++) { SPI_SCK_CLR() ;//时钟置底 if(byte&0x80) SPI_MOSI_SET() ;//输出置高 else SPI_MOSI_CLR() ;//输出置低 Delay(5) ; SPI_SCK_SET() ;//时钟置高 Delay(10) ; byte<<=1 ; } }
INT8U SPI_RecByte(void)//从SD卡读入数据 { INT8U i, get_char ; for(i=0; i<8; i++) { SPI_SCK_CLR() ;//时钟置底 Delay(10) ; SPI_SCK_SET() ;//时钟置高 get_char |= SPI_MISO_GET() ;//从SD卡读取一位 if(i<7) get_char <<= 1 ;//左移 Delay(10) ; } return get_char ; }
上面是用I/O口来读写SD卡的程序,请高手看看,有没有什么问题.先谢谢了! |