上節(jié)講了SD卡有兩種總線操作方式,我選擇SPI總線方式。這樣我可以利用自己以前的SPI讀寫程序。#defineSD_CSp1_1//為SPI的使能端
#define CLK p1_2//為SPI時(shí)鐘輸入
#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);
}
這個(gè)函數(shù)包含讀寫兩部分在里面,這個(gè)有時(shí)候要修改延時(shí)時(shí)間。
本文引用地址:http://m.butianyuan.cn/article/201611/322497.htm
評(píng)論