上節講了SD卡有兩種總線(xiàn)操作方式,我選擇SPI總線(xiàn)方式。這樣我可以利用自己以前的SPI讀寫(xiě)程序。#defineSD_CSp1_1//為SPI的使能端
#define CLK p1_2//為SPI時(shí)鐘輸入
#define MOSI p1_3//為SPI數據主輸從人端
#define MISO p1_4//為SPI數據主人從輸端
#define uchar unsigned char
ucharSD_SPI_RW(uchar data_byte)//spi通信的讀寫(xiě)子程序
{
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);
}
這個(gè)函數包含讀寫(xiě)兩部分在里面,這個(gè)有時(shí)候要修改延時(shí)時(shí)間。
本文引用地址:http://dyxdggzs.com/article/201611/322497.htm
評論