/*=====================================================================================================*/ static void NRF_WriteBuf( u8 WriteAddr, u8 *WriteBuf, u8 Bytes ) { u8 i; NRF_CSN = 0; SPI_RW(NRF_SPIx, WriteAddr); for(i=0; i<Bytes; i++) SPI_RW(NRF_SPIx, WriteBuf[i]); NRF_CSN = 1; }
/************************************************** Function: SPI_Read_Reg(); Description: Read one UINT8 from BK2421 register, 'reg' // **************************************************/ UINT8 SPI_Read_Reg(UINT8 reg) { UINT8 value; CSN(0); // CSN low, initialize SPI communication... op_status = SPI_RW(reg); // Select register to read from.. value = SPI_RW(0); // ..then read register value CSN(1); // CSN high, terminate SPI communication return(value); // return register value }
uchar SPI_Write_Buf(uchar reg, uchar * pBuf, uchar bytes) { uchar status, i; CSN = 0; // CSN置低,开始传输数据 status = SPI_RW(reg); // 选择寄存器,同时返回状态字 for(i=0; i<bytes; i++) SPI_RW(pBuf[i]); // 逐个字节写入nRF24L01 CSN = 1; // CSN拉高,结束数据传输 return(status); // 返回状态寄存器 }
/*=====================================================================================================*/ static void NRF_ReadBuf( u8 ReadAddr, u8 *ReadBuf, u8 Bytes ) { u8 i = 0; NRF_CSN = 0; SPI_RW(NRF_SPIx, ReadAddr); for(i=0; i<Bytes; i++) ReadBuf[i] = SPI_RW(NRF_SPIx, 0xFF); NRF_CSN = 1; }
unsigned char SPI_Write_Buf(unsigned char reg, unsigned char *pBuf, unsigned uchars) { unsigned char status,uchar_ctr; cbi(PORTC,CSN);//CSN = 0; //SPI status = SPI_RW(reg); for(uchar_ctr=0; uchar_ctr<uchars; uchar_ctr++) // SPI_RW(*pBuf++); sbi(PORTC,CSN);//CSN = 1; //SPI return(status); // }
uchar SPI_Read_Buf(uchar reg, uchar * pBuf, uchar bytes) { uchar status, i; CSN = 0; // CSN置低,开始传输数据 status = SPI_RW(reg); // 选择寄存器,同时返回状态字 for(i=0; i<bytes; i++) pBuf[i] = SPI_RW(0); // 逐个字节从nRF24L01读出 CSN = 1; // CSN拉高,结束数据传输 return(status); // 返回状态寄存器 }
//读寄存器 uint8_t NRF_Read_Reg(uint8_t reg) { uint8_t reg_val; SPI_CSN_L(); SPI_RW(reg); reg_val = SPI_RW(0); /* 读取该寄存器返回数据 */ SPI_CSN_H(); return reg_val; }
/////////////////////写寄存器///////////////////////////////////////////// uchar SPI_Write_Reg(uchar reg, uchar value) { uchar status; NRF_CSN0; // CSN low, init SPI transaction status = SPI_RW(reg); // select register SPI_RW(value); // ..and write value to it.. NRF_CSN1; // CSN high again return(status); // return nRF24L01 status byte }
BYTE SPI_Command(BYTE reg, BYTE value) { BYTE status; CSN_Pin_LowSelect(); status = SPI_RW( reg); SPI_RW(value); CSN_Pin_HighDisable(); return(status); }
BYTE SPI_Write_Register(BYTE reg, BYTE value) { BYTE status; CSN_Pin_LowSelect(); status = SPI_RW(WRITE_REG | reg); SPI_RW(value); CSN_Pin_HighDisable(); return(status); }
BYTE SPI_Read_Register(BYTE reg) { BYTE reg_val; CSN_Pin_LowSelect(); SPI_RW(reg); reg_val = SPI_RW(0); CSN_Pin_HighDisable(); return(reg_val); }
/************************************************** Function: SPI_Write_Buf(); Description: Writes contents of buffer '*pBuf' to RFM73 // **************************************************/ void SPI_Write_Buf(UINT8 reg, UINT8 *pBuf, UINT8 length) { UINT8 byte_ctr; CSN(0); // Set CSN low, init SPI tranaction op_status = SPI_RW(reg); // Select register to write to and read status UINT8 for(byte_ctr=0; byte_ctr<length; byte_ctr++) // then write all UINT8 in buffer(*pBuf) SPI_RW(*pBuf++); CSN(1); // Set CSN high again }
unsigned char SPI_RW_Reg(unsigned char reg, unsigned char value) { unsigned char status; cbi(PORTC,CSN);//CSN = 0; // CSN low, init SPI transaction status = SPI_RW(reg); // select register SPI_RW(value); // ..and write value to it.. sbi(PORTC,CSN);//CSN = 1; // CSN high again return(status); // return nRF24L01 status uchar }
/************************************************** 功能:读RF寄存器 **************************************************/ uint8_t SPI_Read(uint8_t reg) { uint8_t reg_val; RFCSN = 0; SPI_RW(reg); // 选择RF寄存器 reg_val = SPI_RW(0); // 读出数据 RFCSN = 1; return(reg_val); // 返回RF状态值 }
/************************************************** 功能:写RF寄存器,读RF状态值 **************************************************/ uint8_t SPI_RW_Reg(uint8_t reg, uint8_t value) { uint8_t status; RFCSN = 0; status = SPI_RW(reg); // 选择RF寄存器 SPI_RW(value); // 写入数据 RFCSN = 1; return(status); // 返回RF状态值 }
//写寄存器 uint8_t NRF_WriteReg(uint8_t reg, uint8_t value) { uint8_t dtemp; SPI_CE_L;//.......... SPI_CSN_L; dtemp = SPI_RW(reg); SPI_RW(value); SPI_CSN_H; return dtemp; }
//读寄存器 uint8_t NRF_ReadReg(uint8_t reg) { uint8_t dtemp; SPI_CE_L;//............. SPI_CSN_L; SPI_RW(reg); dtemp = SPI_RW(0); SPI_CSN_H; return dtemp; }
/*=====================================================================================================*/ static u8 NRF_ReadReg( u8 ReadAddr ) { u8 ReadData; NRF_CSN = 0; SPI_RW(NRF_SPIx, ReadAddr); ReadData = SPI_RW(NRF_SPIx, 0xFF); NRF_CSN = 1; return ReadData; }
/************************************************** 功能:把缓冲区的多字节数据写到RF寄存器 **************************************************/ uint8_t SPI_Write_Buf(uint8_t reg, uint8_t *pBuf, uint8_t bytes) { uint8_t status,byte_ctr; RFCSN = 0; status = SPI_RW(reg); // 选择RF寄存器 for(byte_ctr=0; byte_ctr<bytes; byte_ctr++) // 连接写入数据 SPI_RW(*pBuf++); RFCSN = 1; return(status); // 返回RF状态值 }
uint SPI_RW_Reg(uchar reg, uchar value) { uint 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 }
uint SPI_Write_Buf(uchar reg, uchar *pBuf, uchar uchars) { uint status,uchar_ctr; CSN = 0; //SPI使能 status = SPI_RW(reg); for(uchar_ctr=0; uchar_ctr<uchars; uchar_ctr++) // SPI_RW(*pBuf++); CSN = 1; //關閉SPI return(status); // }
uint8_t iBoardRF24::write_register(uint8_t reg, uint8_t value) { uint8_t status; csn(LOW); status = SPI_RW( W_REGISTER | ( REGISTER_MASK & reg ) ); SPI_RW(value); csn(HIGH); return status; }
uchar SPI_Read(uchar reg) { uchar reg_val; CSN = 0; // CSN low, initialize SPI communication... SPI_RW(reg); // Select register to read from.. reg_val = SPI_RW(0); // ..then read registervalue CSN = 1; // CSN high, terminate SPI communication return(reg_val); // return register value }
/************************************************** Function: SPI_Read(); Description: Read one byte from nRF24L01 register, 'reg' **************************************************/ unsigned char SPI_Read(unsigned char reg) { unsigned char reg_val; nRF24L01_CSN_CLR; // CSN low, initialize SPI communication... SPI_RW(reg); // Select register to read from.. reg_val = SPI_RW(0); // ..then read registervalue nRF24L01_CSN_SET; // CSN high, terminate SPI communication return(reg_val); // return register value }
/************************************************** Function: SPI_Write_Buf(); Description: Writes contents of buffer '*pBuf' to nRF24L01 Typically used to write TX payload, Rx/Tx address **************************************************/ unsigned char SPI_Write_Buf(unsigned char reg, unsigned char *pBuf, unsigned char bytes) { unsigned char status,byte_ctr; nRF24L01_CSN_CLR; status = SPI_RW(reg); for(byte_ctr=0; byte_ctr<bytes; byte_ctr++) SPI_RW(*pBuf++); nRF24L01_CSN_SET; return(status); }
/************************************************** Function: SPI_RW_Reg(); Description: Writes value 'value' to register 'reg' **************************************************/ unsigned char SPI_RW_Reg(unsigned char reg, unsigned char value) { unsigned char status; nRF24L01_CSN_CLR; // CSN low, init SPI transaction status = SPI_RW(reg); // select register SPI_RW(value); // ..and write value to it.. nRF24L01_CSN_SET; // CSN high again return(status); // return nRF24L01 status byte }
/*====================================================================================================*/ static uint8_t MPU9250_ReadReg( uint8_t ReadAddr ) { uint8_t ReadData = 0; SPIx_CS_L; SPI_RW(SPIx, 0x80 | ReadAddr); ReadData = SPI_RW(SPIx, 0xFF); SPIx_CS_H; return ReadData; }
unsigned char NRFLib::SPI_Write_Buf(unsigned char reg, unsigned char *pBuf, unsigned char bytes) { unsigned char sstatus,i; digitalWrite(_csnpin, 0); sstatus = SPI_RW(reg); // Select register to write to and read status unsigned char for(i=0;i<bytes; i++){ // then write all unsigned char in buffer(*pBuf) SPI_RW(*pBuf++); } digitalWrite(_csnpin, 1); return(sstatus); // return nRF24L01 status unsigned char }
/*====================================================================================================*/ uint8_t MPU9250_ReadReg( uint8_t readAddr ) { uint8_t readData = 0; SPIx_CS_L(); SPI_RW(SPIx, 0x80 | readAddr); readData = SPI_RW(SPIx, 0x00); SPIx_CS_H(); return readData; }
uchar SPI_Write_Buf(uchar reg, uchar *pBuf, uchar bytes) { uchar status,byte_ctr; NRF_CSN0; // 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++) // then write all byte in buffer(*pBuf) SPI_RW(*pBuf++); NRF_CSN1; // Set CSN high again return(status); // return nRF24L01 status byte }