// BYTE type definition
#ifndef API_H
#define API_H
//****************************************************
// SPI(nRF24L01) commands
#define READ_REG 0x00 // 定义读寄存器指令
#define WRITE_REG 0x20 // 定义写寄存器指令
#define R_RX_PL_WID 0x60
#define RD_RX_PLOAD 0x61 // 读模块接收到的有效数据
#define WR_TX_PLOAD 0xA0 // 写模块待发射的数据
#define FLUSH_TX 0xE1 //清空数据发送寄存器,等待下一次填入待发数据
#define FLUSH_RX 0xE2 // 清空数据接收寄存器,等待下一次填入接收的数据
#define REUSE_TX_PL 0xE3 //重发上一数据包
#define NOP 0xFF // 空操作
//***************************************************
#define RX_DR 0x40 //接收完成中断
#define TX_DS 0x20 //发送完成中断
#define MAX_RT 0x10 //重发次数溢出中断
#define MAX_TX 0x10 //达到最大发送次数中断
#define TX_OK 0x20 //TX发送完成中断
#define RX_OK 0x40 //接收到数据中断
//***************************************************
// SPI(nRF24L01) registers(addresses)
#define CONFIG 0x00 // 'Config' *模块配置寄存器
#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 STATUS 0x07 // 状态寄存器
#define OBSERVE_TX 0x08 // 发送检测寄存器,可不需设置
#define CD 0x09 // 载波寄存器,可不需设置
#define RX_ADDR_P0 0x0A //*数据接收通道0地址
#define RX_ADDR_P1 0x0B //数据接收通道1地址
#define RX_ADDR_P2 0x0C // 数据接收通道2地址
#define RX_ADDR_P3 0x0D //数据接收通道3地址
#define RX_ADDR_P4 0x0E // 数据接收通道4地址
#define RX_ADDR_P5 0x0F // 数据接收通道5地址
#define TX_ADDR 0x10 //*发射数据通道地址寄存器
#define RX_PW_P0 0x11 // *接收数据通道0有效数据宽度
#define RX_PW_P1 0x12 // *接收数据通道1有效数据宽度
#define RX_PW_P2 0x13 //*接收数据通道2有效数据宽度
#define RX_PW_P3 0x14 // *接收数据通道3有效数据宽度
#define RX_PW_P4 0x15 //*接收数据通道4有效数据宽度
#define RX_PW_P5 0x16 //*接收数据通道5有效数据宽度
#define FIFO_STATUS 0x17 //FIFO状态寄存器
//************************************************
#endif