上節(jié)講了SD卡有兩種總線操作方式,我選擇SPI總線方式。這樣我可以利用自己以前的SPI讀寫程序。#defineSD_CSp1_1//為SPI的使能端
#define CLK p1_2//為SPI時鐘輸入
#define MOSI p1_3//為SPI數(shù)據(jù)主輸從人端
#define MISO p1_4//為SPI數(shù)據(jù)主人從輸端
#define uchar unsigned char
ucharSD_SPI_RW(uchar data_byte)//spi通信的讀寫子程序
{
uchar bit_ctr;
for(bit_ctr=0;bit_ctr<8;bit_ctr++)
{
if((data_byte & 0x80)!=0)
MOSI=1;
else
MOSI=0;
data_byte = (data_byte << 1);
CLK=1;
asm("NOPnNOPnNOPnNOPn");
if(MISO!=0)
data_byte|=0x1;
else
data_byte&=0xfe;
CLK=0;
asm("NOPnNOPnNOPnNOPn");
}
return(data_byte);
}
這個函數(shù)包含讀寫兩部分在里面,這個有時候要修改延時時間。
本文引用地址:http://www.ex-cimer.com/article/201611/322497.htm
評論