|
char SPI_RW(char data)
1 Z, w3 r! H- j" A e- t{
! k1 d7 D }0 @' v' P char i,temp=0;& @0 y$ X; l' J1 P9 B+ X: i
for(i=0;i<8;i++) // output 8-bit
1 V4 J5 ~4 o9 q) x& U {
1 T$ o) K% W& N if(data & 0x80) //最高位为1的话 就个从机发1 否则发0 通过这几句就可以向从机发送数据的最高位
& i6 @+ p( _5 w! t* ~: z D& I Hign_24L01_MOSI ;+ I/ b) {, |( \( x* c
else
# w! P# k! k7 t9 X( J. O Low_24L01_MOSI;
* n9 i8 J7 M; t, ]: F! P* M* g- g
Z; Y) v3 A& A H! c- o2 d3 s data = (data << 1); // 把数据的低一位移至最高位以备发送
_5 Z: ]7 i/ c temp<<=1;
7 R! b g& a) F, G9 g Hign_24L01_SCK ; //拉高拉低写入数据
# f* ]; C# I! |, D: v0 N! B if(Read_24L01_MISO )temp++;//从 从机读取一位值然后跟 temp<<=1;( g! f5 t: c! N* |
//合起来实现读取八位从机向主机发送的数据- B: f- f; w) |& u: g
Low_24L01_SCK; , B/ ~' r$ f ^" o3 `) E6 ~
}
+ J( w) [" X6 i @9 u return(temp);//最后将八位集合为一个字节返回出来1 ?& q. _1 W8 O! Q4 Q, Y. ~. v
} |
|