智能车制作

标题: 在读写nrf2401的函数中,只要往2401中写命令,则返回值就是状态寄存器Status中的内容 [打印本页]

作者: zz60754404    时间: 2013-4-3 00:13
标题: 在读写nrf2401的函数中,只要往2401中写命令,则返回值就是状态寄存器Status中的内容
在读写nrf2401的函数中,只要往2401中写命令,则返回值就是状态寄存器Status中的内容,再接着写一串0,则返回值就是想要读取的寄存器中的内容,各位路过的大侠们,我的理解正确吗,资料上没讲这一点,看例程时对这里有点迷糊,望各位过路的大侠指点指点。小弟在此谢过。

uchar SPI_RW_Reg(BYTE reg, BYTE value)
{
uchar status;
   CSN = 0;                   // CSN low, init SPI transaction  // CS为低,开始SPI传输
   status = SPI_RW(reg);      // select register  // 传送命令与地址
   SPI_RW(value);             // ..and write value to it..  // 写1 BYTE 值
   CSN = 1;                   // CSN high again    // 完成SPI传输
   return(status);      // 返回 status        // return nRF24L01 status byte
}



/**************************************************
Function: SPI_Read();
Description:
  Read one byte from nRF24L01 register, 'reg'
/**************************************************/
BYTE SPI_Read(BYTE reg)
{
BYTE reg_val;
   CSN = 0;                // CSN low, initialize SPI communication...  // CS为低,开始SPI传输
   SPI_RW(reg);            // Select register to read from..  // 设置读地址
   reg_val = SPI_RW(0);    // ..then read registervalue   // 读数据
   CSN = 1;                // CSN high, terminate SPI communication   // 完成SPI传输
   return(reg_val);        // return register value // 返回数据
}



/**************************************************
Function: SPI_Read_Buf();
Description:
  Reads 'bytes' #of bytes from register 'reg'
  Typically used to read RX payload, Rx/Tx address
/**************************************************/
uchar SPI_Read_Buf(BYTE reg, BYTE *pBuf, BYTE bytes)
{
uchar status,byte_ctr;
   CSN = 0;                       // CS为低,开始SPI传输// Set CSN low, init SPI tranaction
   status = SPI_RW(reg);          // 传输读接收数据的命令.    // Select register to write to and read status byte
   for(byte_ctr=0;byte_ctr<bytes;byte_ctr++)
    pBuf[byte_ctr] = SPI_RW(0);      // 读 1 BYTE数据   // Perform SPI_RW to read byte from nRF24L01
   CSN = 1;                         // 数据传送完成. // Set CSN high again
   return(status);                    // return nRF24L01 status byte
}


作者: chensen5115    时间: 2013-11-27 01:40
我也想知道,楼主知道了吗,告诉我们吧





欢迎光临 智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2