|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
刚开始学习nRF,有个很简单的问题想要请教大神们: ( r! B2 ~1 k3 ?8 S
1 N1 J% S1 D- Y7 h" R下面这个函数中有几句代码我不太理解,为什么要把MOSI的最高位置1,temp又是干嘛用的? 5 X; V; S7 C! U. S% r% p0 E
/****************************************************************************************************
' ^( w. E6 c" T5 d4 v9 O' z k函数:uint SPI_RW(uint uchar) $ R7 B" g( V3 E, [* v( \
功能:NRF24L01的SPI写 7 y) S+ i1 G* G+ h( }: n
***************************************************************************************************/ 8 Q) u: i4 R0 T$ `0 L
char SPI_RW(char data) * z# k2 K. h" Y5 P) f- H- a
{
9 k, z) s% ]9 Lchar i,temp=0;
2 I3 G8 A6 ]. }1 \ for(i=0;i<8;i++) // output 8-bit * }" W) q$ b# z3 O4 f9 x% O9 s" g
{ ( ]1 B. w0 Y) ?; Y1 r) ]
if(data & 0x80)
+ t" R5 R# K& f6 I) C! P3 r{ 0 M v3 {4 F/ ]
Hign_24L01_MOSI ; // output 'uchar', MSB to MOSI
+ u, N8 U4 H2 h b} ! J% ^( i7 M5 {1 M6 \
else
1 m, t# F% B. _0 R6 P9 j' E! k+ F+ L{ # M# }) i# p/ ?
Low_24L01_MOSI; + ~. z# O I% S" I
} : N% |' y/ b7 ^4 f
data = (data << 1); // shift next bit into MSB..
8 I+ p# ?: M* P; \temp<<=1;
9 u% u1 [0 b2 Y T; [) b+ X' x, Q# mHign_24L01_SCK ; // Set SCK high.. & x( B9 o! W- I. u5 A7 i4 |; B, O
if(Read_24L01_MISO )temp++; // capture current MISO bit 8 S; t0 r- T$ W- B z. C( {
Low_24L01_SCK; // ..then set SCK low again
- h7 z0 j6 q' \0 @, J } $ i$ ^! h7 A8 G
return(temp); // return read uchar
! t% M4 t- U1 r! h8 B}
" s, V4 @$ @! |! Z |
|