/*
********************************************************************************
* NRF24L01常量、指令、寄存器地址
*
* 文 件:NRF24L01.h
* 作 者:XX
* 日 期:2016年9月19日
********************************************************************************
*/
#ifndef _NRF24L01_H_
#define _NRF24L01_H_
/*
********************************************************************************
* NRF24L01常量
********************************************************************************
*/
#define TX_ADR_WIDTH 5 // 发送地址宽度 5字节
#define RX_ADR_WIDTH 5 // 接收地址宽度 5字节
#define TX_PLOAD_WIDTH 4 // 发送数据宽度 4字节
#define RX_PLOAD_WIDTH 4 // 接收数据宽度 4字节
/*
********************************************************************************
* NRF24L01相关命令宏定义
********************************************************************************
*/
#define READ_REG 0x00 // 读寄存器指令
#define WRITE_REG 0x20 // 写寄存器指令
#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 // 保留
/*
********************************************************************************
* NRF24L01寄存器地址宏定义
********************************************************************************
*/
#define CONFIG 0x00 // 配置收发状态,CRC校验模式以及收发状态响应方式
#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栈入栈出状态寄存器设置
/*
********************************************************************************
* NRF24L01控制函数
********************************************************************************
*/
unsigned char SPI_RW(unsigned char byte);
unsigned char SPI_RW_Reg(unsigned char reg, unsigned char value);
unsigned char SPI_Read(unsigned char reg);
unsigned char SPI_Read_Buf(unsigned char reg, unsigned char *pBuf, unsigned char bytes);
unsigned char SPI_Write_Buf(unsigned char reg, unsigned char *pBuf, unsigned char bytes);
void RX_Mode(void);
void TX_Mode(void);
#endif
(void); #endif
/*
********************************************************************************
* NRF24L01常量、指令、寄存器地址
*
* 文 件:NRF24L01.h
* 作 者:XX
* 日 期:2016年9月19日
********************************************************************************
*/
#ifndef _NRF24L01_H_
#define _NRF24L01_H_
/*
********************************************************************************
* NRF24L01常量
********************************************************************************
*/
#define TX_ADR_WIDTH 5 // 发送地址宽度 5字节
#define RX_ADR_WIDTH 5 // 接收地址宽度 5字节
#define TX_PLOAD_WIDTH 4 // 发送数据宽度 4字节
#define RX_PLOAD_WIDTH 4 // 接收数据宽度 4字节
/*
********************************************************************************
* NRF24L01相关命令宏定义
********************************************************************************
*/
#define READ_REG 0x00 // 读寄存器指令
#define WRITE_REG 0x20 // 写寄存器指令
#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 // 保留
/*
********************************************************************************
* NRF24L01寄存器地址宏定义
********************************************************************************
*/
#define CONFIG 0x00 // 配置收发状态,CRC校验模式以及收发状态响应方式
#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栈入栈出状态寄存器设置
/*
********************************************************************************
* NRF24L01控制函数
********************************************************************************
*/
unsigned char SPI_RW(unsigned char byte);
unsigned char SPI_RW_Reg(unsigned char reg, unsigned char value);
unsigned char SPI_Read(unsigned char reg);
unsigned char SPI_Read_Buf(unsigned char reg, unsigned char *pBuf, unsigned char bytes);
unsigned char SPI_Write_Buf(unsigned char reg, unsigned char *pBuf, unsigned char bytes);
void RX_Mode(void);
void TX_Mode(void);
#endif
(void); #endif
举报