|
|
char SPI_RW(char data)* Q9 U" V" h3 K5 S; j; E
{; r% f: J, _, U( i0 j. [8 A% M Y8 S
char i,temp=0;' }; ~! R9 k2 y1 a' {, c0 h
for(i=0;i<8;i++) // output 8-bit9 R5 |* e+ J8 {2 c% K$ l- G
{
* b5 ?4 H/ e; |; @3 h: b" I if(data & 0x80) //最高位为1的话 就个从机发1 否则发0 通过这几句就可以向从机发送数据的最高位
3 g, @# p& L% M2 a# k8 w Hign_24L01_MOSI ;! C2 x* V! h& ^" n1 o3 T
else
/ o' m8 D2 P# j" n/ b$ w/ R) @9 x Low_24L01_MOSI;7 b9 n) r: X! Z) M5 a
7 N0 m) z: t! H, u1 _5 r
data = (data << 1); // 把数据的低一位移至最高位以备发送 J( X* T: S0 e% K
temp<<=1;
' j. U! U! V; ? C0 Z" y Hign_24L01_SCK ; //拉高拉低写入数据
3 _' B3 d! h9 `& z- ?7 f2 O if(Read_24L01_MISO )temp++;//从 从机读取一位值然后跟 temp<<=1;: l6 g: @/ g1 ?+ S
//合起来实现读取八位从机向主机发送的数据3 h+ j8 [' H2 a4 o* ?* N
Low_24L01_SCK; 1 q3 r6 ?) S% V2 f9 j* F$ k( ~2 ?
}7 u& M, [, E% }/ k- H& V4 D C
return(temp);//最后将八位集合为一个字节返回出来/ q1 d/ O" S) [6 K
} |
|