STM32
直播中

hxjq

12年用户 780经验值
私信 关注
[问答]

NRF24L01的相关命令宏定义有哪些

NRF24L01的常量是什么?
NRF24L01的相关命令宏定义有哪些?

回帖(1)

喻唯

2021-12-17 11:00:43

/*
********************************************************************************
*                       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
举报

更多回帖

发帖
×
20
完善资料,
赚取积分