|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
刚开始学习nRF,有个很简单的问题想要请教大神们: . N n, D/ n9 b& R& q
' \! e+ _% q: p下面这个函数中有几句代码我不太理解,为什么要把MOSI的最高位置1,temp又是干嘛用的?
, f2 d. r$ L5 ]: J6 i; ~/****************************************************************************************************
* Q# j; e4 W5 k; J1 ~4 E' z; y" A函数:uint SPI_RW(uint uchar)
8 i# o f2 I$ ^+ j- Q: C/ x: }功能:NRF24L01的SPI写 7 B+ n) U! `8 @* r3 R$ r9 R
***************************************************************************************************/
4 |( ]# ^% I' b- wchar SPI_RW(char data) " ]# T3 o! s1 X G. z) w5 I
{
1 Q9 }: ]( |/ [: _% \! O2 S- rchar i,temp=0; 8 L$ [2 Q: T* X6 E# e$ U; f* Z
for(i=0;i<8;i++) // output 8-bit * d, K8 f5 G% @0 h. |% i
{
* }& h) g* b1 _8 p6 f9 mif(data & 0x80) * s3 G/ y' ^4 E8 ]9 m
{
* n8 Z1 _1 K! M4 i0 Q! H( gHign_24L01_MOSI ; // output 'uchar', MSB to MOSI # A9 Z, R6 [9 a1 E1 p. b
}
8 q6 \8 ^! F$ @, @else
5 R1 F6 B; z' G" W; w. ~{ 8 F& T& P* F E: x; a
Low_24L01_MOSI;
) P. x7 t( T7 r, _+ `$ n- |}
" r* i9 c2 [+ F' gdata = (data << 1); // shift next bit into MSB..
2 h2 j1 s* {8 }$ jtemp<<=1; 0 v9 ~; I& L1 @
Hign_24L01_SCK ; // Set SCK high..
- }- K0 U+ s/ nif(Read_24L01_MISO )temp++; // capture current MISO bit ; l6 p! }( p5 Y; |, t9 `! @3 J
Low_24L01_SCK; // ..then set SCK low again
$ j- g m" U) g+ j }
2 a/ k7 e7 g# R return(temp); // return read uchar
& ^3 A+ A) F5 U" H! d ~- o}
: f7 M% w. S1 b |
|