// Get data from nRF24L01 into buffer // input: // reg - register number // pBuf - pointer to buffer // count - bytes count // output: nRF24L01 status uint8_t nRF24_ReadBuf(uint8_t reg, uint8_t *pBuf, uint8_t count) { uint8_t status,i; CSN_L(); status = nRF24_ReadWrite(reg); for (i = 0; i < count; i++) pBuf[i] = nRF24_ReadWrite(0); CSN_L(); return status; }
/* ***************************************************************** * 读寄存器 ***************************************************************** */ uint8_t ANO_NRF::Read_Reg(uint8_t reg) { uint8_t reg_val; CSN_L(); /* 选通器件 */ RW(reg); /* 写寄存器地址 */ reg_val = RW(0); /* 读取该寄存器返回数据 */ CSN_H(); /* 禁止该器件 */ return reg_val; }
u8 NRF24L01_Read_Reg(u8 reg) { u8 reg_val; CSN_L(); //使能SPI传输 SPI_ReadWriteByte(reg); //发送寄存器号 reg_val=SPI_ReadWriteByte(0XFF);//读取寄存器内容 CSN_H(); //禁止SPI传输 return(reg_val); //返回状态值 }
/* ***************************************************************** * 写寄存器 ***************************************************************** */ uint8_t ANO_NRF::Write_Reg(uint8_t reg, uint8_t value) { uint8_t status; CSN_L(); /* 选通器件 */ status = RW(reg); /* 写寄存器地址 */ RW(value); /* 写数据 */ CSN_H(); /* 禁止该器件 */ return status; }
u8 NRF24L01_Write_Reg(u8 reg,u8 value) { u8 status; CSN_L(); //使能SPI传输 status=SPI_ReadWriteByte(reg); //发送寄存器号 SPI_ReadWriteByte(value); //写入寄存器的值 CSN_H(); //禁止SPI传输 return(status); //返回状态值 }
// Write new value to register // input: // reg - register number // value - new value // output: nRF24L01 status uint8_t nRF24_RWReg(uint8_t reg, uint8_t value) { uint8_t status; CSN_L(); status = nRF24_ReadWrite(reg); // Select register nRF24_ReadWrite(value); // Write value to register CSN_H(); return status; }
// Send buffer to nRF24L01 // input: // reg - register number // pBuf - pointer to buffer // count - bytes count // output: nRF24L01 status uint8_t nRF24_WriteBuf(uint8_t reg, uint8_t *pBuf, uint8_t count) { uint8_t status,i; CSN_L(); status = nRF24_ReadWrite(reg); for (i = 0; i < count; i++) nRF24_ReadWrite(*pBuf++); CSN_H(); return status; }
// Read nRF24L01 register // input: // reg - register number // output: register value uint8_t nRF24_ReadReg(uint8_t reg) { uint8_t value; CSN_L(); nRF24_ReadWrite(reg); value = nRF24_ReadWrite(0); CSN_H(); return value; }
u8 NRF24L01_Read_Buf(u8 reg,u8 *pBuf,u8 len) { u8 status,u8_ctr; CSN_L(); //使能SPI传输 status=SPI_ReadWriteByte(reg); //发送寄存器值(位置),并读取状态值 for(u8_ctr=0;u8_ctr<len;u8_ctr++) pBuf[u8_ctr]=SPI_ReadWriteByte(0XFF);//读出数据 CSN_H(); //禁止SPI传输 return status; //返回读到的状态值 }
u8 NRF24L01_Write_Buf(u8 reg, u8 *pBuf, u8 len) { u8 status,u8_ctr; CSN_L(); //使能SPI传输 status = SPI_ReadWriteByte(reg);//发送寄存器值(位置),并读取状态值 for(u8_ctr=0; u8_ctr<len; u8_ctr++) SPI_ReadWriteByte(*pBuf++); //写入数据 CSN_H(); //关闭SPI传输 return status; //返回读到的状态值 }
void NRF_WriteReg(uint8_t RegCommand, uint8_t Value) { CSN_H(); delay_ms(3); CSN_L(); spiX_put(RegCommand); spiX_wait(); spiX_put(Value); spiX_wait(); CSN_H(); }
/* ***************************************************************** * * 写缓冲区 * ***************************************************************** */ uint8_t ANO_NRF::Write_Buf(uint8_t reg, uint8_t *pBuf, uint8_t uchars) { uint8_t i; uint8_t status; CSN_L(); /* 选通器件 */ status = RW(reg); /* 写寄存器地址 */ for(i=0; i<uchars; i++) { RW(pBuf[i]); /* 写数据 */ } CSN_H(); /* 禁止该器件 */ return status; }
/* ***************************************************************** * 读缓冲区 ***************************************************************** */ uint8_t ANO_NRF::Read_Buf(uint8_t reg, uint8_t *pBuf, uint8_t uchars) { uint8_t i; uint8_t status; CSN_L(); /* 选通器件 */ status = RW(reg); /* 写寄存器地址 */ for(i=0; i<uchars; i++) { pBuf[i] = RW(0); /* 读取返回数据 */ } CSN_H(); /* 禁止该器件 */ return status; }
void NRF_WriteRegData(uint8_t RegCommand, uint8_t* pData, uint8_t DataSize) { uint8_t ii; CSN_H(); delay_ms(3); CSN_L(); spiX_put(RegCommand); spiX_wait(); for(ii = 0; ii < DataSize; ii++) { spiX_put(pData[ii]); spiX_wait(); } CSN_H(); }
char spiX_readreg(char RegCommand) { char val; CSN_H(); delay_ms(2); CSN_L(); spiX_put(RegCommand); spiX_wait(); spiX_get(); delay_ms(3); spiX_put(0); spiX_wait(); val = spiX_get(); CSN_H(); return val; }