SCLK serial clock
MOSI master out slave in
MISO master in slave out
CS chips select
写数据
//数据高位在前
//数据要在时钟上升沿前准备好
//主机写从机读
片选拉低,开始
时钟拉低
准备数据
时钟拉高,输出1位
共8位
片选拉高,结束
cs=0;
for(i=0;i<8;i++)
{
sclk=0;
if((dat & 0x80) ==1) //判断数据最高位是否是1
MOSI =1;
else
MOSI =0;
sclk = 1;
dat<<=1;
}
cs=1;
读数据
//数据高位在前
//数据上升沿后,再去读
//从机写主机读
片选拉低,开始
时钟拉低,再拉高,给上升沿信号
读数据,共8位
片选拉高,结束
cs=0;
for(i=0;i<8;i++)
{
sclk=0;
sclk = 1;
dat<<=1;
if((MISO & 0x01) ==1) //判断数据是否是1
dat | =0x01;
else
dat & =0xfe;
}
cs=1;
retrun dat ;