Optimized high speed nRF24L01+ driver class documentation v1.5.0
TMRh20 2020 - Optimized fork of the nRF24L01+ driver
Loading...
Searching...
No Matches
RF24.h File Reference
#include "RF24_config.h"
#include "nRF24L01.h"

Go to the source code of this file.

Classes

class  RF24
 Driver class for nRF24L01(+) 2.4GHz Wireless Transceiver. More...
 

Macros

#define NRF_CONFIG   0x00
 
#define EN_AA   0x01
 
#define EN_RXADDR   0x02
 
#define SETUP_AW   0x03
 
#define SETUP_RETR   0x04
 
#define RF_CH   0x05
 
#define RF_SETUP   0x06
 
#define NRF_STATUS   0x07
 
#define OBSERVE_TX   0x08
 
#define CD   0x09
 
#define RX_ADDR_P0   0x0A
 
#define RX_ADDR_P1   0x0B
 
#define RX_ADDR_P2   0x0C
 
#define RX_ADDR_P3   0x0D
 
#define RX_ADDR_P4   0x0E
 
#define RX_ADDR_P5   0x0F
 
#define TX_ADDR   0x10
 
#define RX_PW_P0   0x11
 
#define RX_PW_P1   0x12
 
#define RX_PW_P2   0x13
 
#define RX_PW_P3   0x14
 
#define RX_PW_P4   0x15
 
#define RX_PW_P5   0x16
 
#define FIFO_STATUS   0x17
 
#define DYNPD   0x1C
 
#define FEATURE   0x1D
 
#define MASK_RX_DR   6
 
#define MASK_TX_DS   5
 
#define MASK_MAX_RT   4
 
#define EN_CRC   3
 
#define CRCO   2
 
#define PWR_UP   1
 
#define PRIM_RX   0
 
#define ENAA_P5   5
 
#define ENAA_P4   4
 
#define ENAA_P3   3
 
#define ENAA_P2   2
 
#define ENAA_P1   1
 
#define ENAA_P0   0
 
#define ERX_P5   5
 
#define ERX_P4   4
 
#define ERX_P3   3
 
#define ERX_P2   2
 
#define ERX_P1   1
 
#define ERX_P0   0
 
#define AW   0
 
#define ARD   4
 
#define ARC   0
 
#define PLL_LOCK   4
 
#define CONT_WAVE   7
 
#define RF_DR   3
 
#define RF_PWR   6
 
#define RX_DR   6
 
#define TX_DS   5
 
#define MAX_RT   4
 
#define RX_P_NO   1
 
#define TX_FULL   0
 
#define PLOS_CNT   4
 
#define ARC_CNT   0
 
#define TX_REUSE   6
 
#define FIFO_FULL   5
 
#define TX_EMPTY   4
 
#define RX_FULL   1
 
#define RX_EMPTY   0
 
#define DPL_P5   5
 
#define DPL_P4   4
 
#define DPL_P3   3
 
#define DPL_P2   2
 
#define DPL_P1   1
 
#define DPL_P0   0
 
#define EN_DPL   2
 
#define EN_ACK_PAY   1
 
#define EN_DYN_ACK   0
 
#define R_REGISTER   0x00
 
#define W_REGISTER   0x20
 
#define REGISTER_MASK   0x1F
 
#define ACTIVATE   0x50
 
#define R_RX_PL_WID   0x60
 
#define R_RX_PAYLOAD   0x61
 
#define W_TX_PAYLOAD   0xA0
 
#define W_ACK_PAYLOAD   0xA8
 
#define FLUSH_TX   0xE1
 
#define FLUSH_RX   0xE2
 
#define REUSE_TX_PL   0xE3
 
#define RF24_NOP   0xFF
 
#define LNA_HCURR   0
 
#define RPD   0x09
 
#define W_TX_PAYLOAD_NO_ACK   0xB0
 
#define RF_DR_LOW   5
 
#define RF_DR_HIGH   3
 
#define RF_PWR_LOW   1
 
#define RF_PWR_HIGH   2
 

Enumerations

enum  rf24_pa_dbm_e {
  RF24_PA_MIN = 0 , RF24_PA_LOW , RF24_PA_HIGH , RF24_PA_MAX ,
  RF24_PA_ERROR
}
 
enum  rf24_datarate_e { RF24_1MBPS = 0 , RF24_2MBPS , RF24_250KBPS }
 
enum  rf24_crclength_e { RF24_CRC_DISABLED = 0 , RF24_CRC_8 , RF24_CRC_16 }
 
enum  rf24_fifo_state_e { RF24_FIFO_OCCUPIED , RF24_FIFO_EMPTY , RF24_FIFO_FULL , RF24_FIFO_INVALID }
 
enum  rf24_irq_flags_e {
  RF24_IRQ_NONE = 0 , RF24_TX_DF = 1 << MASK_MAX_RT , RF24_TX_DS = 1 << TX_DS , RF24_RX_DR = 1 << RX_DR ,
  RF24_IRQ_ALL = (1 << MASK_MAX_RT) | (1 << TX_DS) | (1 << RX_DR)
}
 An enumeration of constants used to configure Status flags. More...
 

Detailed Description

Class declaration for RF24 and helper enums

Definition in file RF24.h.

Macro Definition Documentation

◆ NRF_CONFIG

#define NRF_CONFIG   0x00

Definition at line 169 of file RF24.h.

◆ EN_AA

#define EN_AA   0x01

Definition at line 170 of file RF24.h.

◆ EN_RXADDR

#define EN_RXADDR   0x02

Definition at line 171 of file RF24.h.

◆ SETUP_AW

#define SETUP_AW   0x03

Definition at line 172 of file RF24.h.

◆ SETUP_RETR

#define SETUP_RETR   0x04

Definition at line 173 of file RF24.h.

◆ RF_CH

#define RF_CH   0x05

Definition at line 174 of file RF24.h.

◆ RF_SETUP

#define RF_SETUP   0x06

Definition at line 175 of file RF24.h.

◆ NRF_STATUS

#define NRF_STATUS   0x07

Definition at line 176 of file RF24.h.

◆ OBSERVE_TX

#define OBSERVE_TX   0x08

Definition at line 177 of file RF24.h.

◆ CD

#define CD   0x09

Definition at line 178 of file RF24.h.

◆ RX_ADDR_P0

#define RX_ADDR_P0   0x0A

Definition at line 179 of file RF24.h.

◆ RX_ADDR_P1

#define RX_ADDR_P1   0x0B

Definition at line 180 of file RF24.h.

◆ RX_ADDR_P2

#define RX_ADDR_P2   0x0C

Definition at line 181 of file RF24.h.

◆ RX_ADDR_P3

#define RX_ADDR_P3   0x0D

Definition at line 182 of file RF24.h.

◆ RX_ADDR_P4

#define RX_ADDR_P4   0x0E

Definition at line 183 of file RF24.h.

◆ RX_ADDR_P5

#define RX_ADDR_P5   0x0F

Definition at line 184 of file RF24.h.

◆ TX_ADDR

#define TX_ADDR   0x10

Definition at line 185 of file RF24.h.

◆ RX_PW_P0

#define RX_PW_P0   0x11

Definition at line 186 of file RF24.h.

◆ RX_PW_P1

#define RX_PW_P1   0x12

Definition at line 187 of file RF24.h.

◆ RX_PW_P2

#define RX_PW_P2   0x13

Definition at line 188 of file RF24.h.

◆ RX_PW_P3

#define RX_PW_P3   0x14

Definition at line 189 of file RF24.h.

◆ RX_PW_P4

#define RX_PW_P4   0x15

Definition at line 190 of file RF24.h.

◆ RX_PW_P5

#define RX_PW_P5   0x16

Definition at line 191 of file RF24.h.

◆ FIFO_STATUS

#define FIFO_STATUS   0x17

Definition at line 192 of file RF24.h.

◆ DYNPD

#define DYNPD   0x1C

Definition at line 193 of file RF24.h.

◆ FEATURE

#define FEATURE   0x1D

Definition at line 194 of file RF24.h.

◆ MASK_RX_DR

#define MASK_RX_DR   6

Definition at line 197 of file RF24.h.

◆ MASK_TX_DS

#define MASK_TX_DS   5

Definition at line 198 of file RF24.h.

◆ MASK_MAX_RT

#define MASK_MAX_RT   4

Definition at line 199 of file RF24.h.

◆ EN_CRC

#define EN_CRC   3

Definition at line 200 of file RF24.h.

◆ CRCO

#define CRCO   2

Definition at line 201 of file RF24.h.

◆ PWR_UP

#define PWR_UP   1

Definition at line 202 of file RF24.h.

◆ PRIM_RX

#define PRIM_RX   0

Definition at line 203 of file RF24.h.

◆ ENAA_P5

#define ENAA_P5   5

Definition at line 204 of file RF24.h.

◆ ENAA_P4

#define ENAA_P4   4

Definition at line 205 of file RF24.h.

◆ ENAA_P3

#define ENAA_P3   3

Definition at line 206 of file RF24.h.

◆ ENAA_P2

#define ENAA_P2   2

Definition at line 207 of file RF24.h.

◆ ENAA_P1

#define ENAA_P1   1

Definition at line 208 of file RF24.h.

◆ ENAA_P0

#define ENAA_P0   0

Definition at line 209 of file RF24.h.

◆ ERX_P5

#define ERX_P5   5

Definition at line 210 of file RF24.h.

◆ ERX_P4

#define ERX_P4   4

Definition at line 211 of file RF24.h.

◆ ERX_P3

#define ERX_P3   3

Definition at line 212 of file RF24.h.

◆ ERX_P2

#define ERX_P2   2

Definition at line 213 of file RF24.h.

◆ ERX_P1

#define ERX_P1   1

Definition at line 214 of file RF24.h.

◆ ERX_P0

#define ERX_P0   0

Definition at line 215 of file RF24.h.

◆ AW

#define AW   0

Definition at line 216 of file RF24.h.

◆ ARD

#define ARD   4

Definition at line 217 of file RF24.h.

◆ ARC

#define ARC   0

Definition at line 218 of file RF24.h.

◆ PLL_LOCK

#define PLL_LOCK   4

Definition at line 219 of file RF24.h.

◆ CONT_WAVE

#define CONT_WAVE   7

Definition at line 220 of file RF24.h.

◆ RF_DR

#define RF_DR   3

Definition at line 221 of file RF24.h.

◆ RF_PWR

#define RF_PWR   6

Definition at line 222 of file RF24.h.

◆ RX_DR

#define RX_DR   6

Definition at line 223 of file RF24.h.

◆ TX_DS

#define TX_DS   5

Definition at line 224 of file RF24.h.

◆ MAX_RT

#define MAX_RT   4

Definition at line 225 of file RF24.h.

◆ RX_P_NO

#define RX_P_NO   1

Definition at line 226 of file RF24.h.

◆ TX_FULL

#define TX_FULL   0

Definition at line 227 of file RF24.h.

◆ PLOS_CNT

#define PLOS_CNT   4

Definition at line 228 of file RF24.h.

◆ ARC_CNT

#define ARC_CNT   0

Definition at line 229 of file RF24.h.

◆ TX_REUSE

#define TX_REUSE   6

Definition at line 230 of file RF24.h.

◆ FIFO_FULL

#define FIFO_FULL   5

Definition at line 231 of file RF24.h.

◆ TX_EMPTY

#define TX_EMPTY   4

Definition at line 232 of file RF24.h.

◆ RX_FULL

#define RX_FULL   1

Definition at line 233 of file RF24.h.

◆ RX_EMPTY

#define RX_EMPTY   0

Definition at line 234 of file RF24.h.

◆ DPL_P5

#define DPL_P5   5

Definition at line 235 of file RF24.h.

◆ DPL_P4

#define DPL_P4   4

Definition at line 236 of file RF24.h.

◆ DPL_P3

#define DPL_P3   3

Definition at line 237 of file RF24.h.

◆ DPL_P2

#define DPL_P2   2

Definition at line 238 of file RF24.h.

◆ DPL_P1

#define DPL_P1   1

Definition at line 239 of file RF24.h.

◆ DPL_P0

#define DPL_P0   0

Definition at line 240 of file RF24.h.

◆ EN_DPL

#define EN_DPL   2

Definition at line 241 of file RF24.h.

◆ EN_ACK_PAY

#define EN_ACK_PAY   1

Definition at line 242 of file RF24.h.

◆ EN_DYN_ACK

#define EN_DYN_ACK   0

Definition at line 243 of file RF24.h.

◆ R_REGISTER

#define R_REGISTER   0x00

Definition at line 246 of file RF24.h.

◆ W_REGISTER

#define W_REGISTER   0x20

Definition at line 247 of file RF24.h.

◆ REGISTER_MASK

#define REGISTER_MASK   0x1F

Definition at line 248 of file RF24.h.

◆ ACTIVATE

#define ACTIVATE   0x50

Definition at line 249 of file RF24.h.

◆ R_RX_PL_WID

#define R_RX_PL_WID   0x60

Definition at line 250 of file RF24.h.

◆ R_RX_PAYLOAD

#define R_RX_PAYLOAD   0x61

Definition at line 251 of file RF24.h.

◆ W_TX_PAYLOAD

#define W_TX_PAYLOAD   0xA0

Definition at line 252 of file RF24.h.

◆ W_ACK_PAYLOAD

#define W_ACK_PAYLOAD   0xA8

Definition at line 253 of file RF24.h.

◆ FLUSH_TX

#define FLUSH_TX   0xE1

Definition at line 254 of file RF24.h.

◆ FLUSH_RX

#define FLUSH_RX   0xE2

Definition at line 255 of file RF24.h.

◆ REUSE_TX_PL

#define REUSE_TX_PL   0xE3

Definition at line 256 of file RF24.h.

◆ RF24_NOP

#define RF24_NOP   0xFF

Definition at line 257 of file RF24.h.

◆ LNA_HCURR

#define LNA_HCURR   0

Definition at line 260 of file RF24.h.

◆ RPD

#define RPD   0x09

Definition at line 263 of file RF24.h.

◆ W_TX_PAYLOAD_NO_ACK

#define W_TX_PAYLOAD_NO_ACK   0xB0

Definition at line 264 of file RF24.h.

◆ RF_DR_LOW

#define RF_DR_LOW   5

Definition at line 267 of file RF24.h.

◆ RF_DR_HIGH

#define RF_DR_HIGH   3

Definition at line 268 of file RF24.h.

◆ RF_PWR_LOW

#define RF_PWR_LOW   1

Definition at line 269 of file RF24.h.

◆ RF_PWR_HIGH

#define RF_PWR_HIGH   2

Definition at line 270 of file RF24.h.