大家好,我刚开始学习nRF,是个菜鸟,有个很简单的问题想要请教大神们:
下面这个函数中有几句代码我不太理解,为什么要把MOSI的最高位置1,temp又是干嘛用的?
/****************************************************************************************************
函数:uint SPI_RW(uint uchar)
功能:NRF24L01的SPI写
***************************************************************************************************/
char SPI_RW(char data)
{
char i,temp=0;
for(i=0;i<8;i++) // output 8-bit
{
if(data & 0x80)
{
Hign_24L01_MOSI ; // output 'uchar', MSB to MOSI
}
else
{
Low_24L01_MOSI;
}
data = (data << 1); // shift next bit into MSB..
temp<<=1;
Hign_24L01_SCK ; // Set SCK high..
if(Read_24L01_MISO )temp++; // capture current MISO bit
Low_24L01_SCK; // ..then set SCK low again
}
return(temp); // return read uchar
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>