请问下NRF24L01的问题。

2019-03-24 18:24发布

/*函数:uint SPI_RW(uint uchar)
/*功能:NRF24L01的SPI写时序
/****************************************************************************************************/
uchar SPI_RW(uchar byte)
{
        uchar bit_ctr;
           for(bit_ctr=0;bit_ctr<8;bit_ctr++) // output 8-bit
           {
                MOSI = (byte & 0x80);         // output 'uchar', MSB to MOSI
                byte = (byte << 1);           // shift next bit into MSB..
                SCK = 1;                      // Set SCK high..
                byte |= MISO;                         // capture current MISO bit
                SCK = 0;                              // ..then set SCK low again
           }
    return(byte);                             // return read uchar
}


/****************************************************************************************************/
/*功能:NRF24L01读写寄存器函数
/****************************************************************************************************/
uchar SPI_RW_Reg(uchar reg, uchar value)
{
        uchar status;
        
        CSN = 0;                   // CSN low, init SPI transaction
        status = SPI_RW(reg);      // select register
        SPI_RW(value);             // ..and write value to it..
        CSN = 1;                   // CSN high again
        
        return(status);            // return nRF24L01 status uchar
}

不懂的是,status=SPI_RW(reg);这个为什么是Select register to write to.
谢谢解答!! 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
6条回答
xywust
2019-03-25 03:58
huo_hu 发表于 2014-4-14 17:48
24l01每个寄存器有个地址,每次写某个寄存器时都是写指令0x20+寄存器号,读寄存器0x00+寄存器号,
#define NR ...

谢谢··~~~~~刚开始学这个。各种不懂,非常感激~~~~

一周热门 更多>