上节讲了SD卡有两种总线操作方式,我选择SPI总线方式。这样我可以利用自己以前的SPI读写程序。defineSD_CSp1_1为SPI的使能端defineCL
上节讲了SD卡有两种总线操作方法,我挑选SPI总线方法。这样我能够使用自己曾经的SPI读写程序。
#defineSD_CSp1_1//为SPI的使能端
#define CLK p1_2//为SPI时钟输入
#define MOSI p1_3//为SPI数据主输从人端
#define MISO p1_4//为SPI数据主人从输端
#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);
}
这个函数包括读写两部分在里面,这个有时候要修正延时时刻。
声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qianrushi/yingjian/257564.html