| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159 | //===================================================================================////  * @file           RF.H//  * @author         droplin//  * @version        V1.1//  * @date           2020/12/16//  * @brief          Main program body//  * @modify user:   droplin//  * @modify date:   2019/12/19//===================================================================================//#ifndef   _RF_H_#define   _RF_H_#include "stdbool.h"#include "stdint.h"//////////////////////////////////////////////////////////////////////////////////                    以下为声明部分,不建议修改                              ///////////////////////////////////////////////////////////////////////////////////******************** 指令寄存器 ********************/#define		R_REGISTER			0x00                            //SPI read RF data#define		W_REGISTER			0x20                            //SPI write RF data#define		R_RX_PAYLOAD		        0x61                            //Read RX Payload#define		W_TX_PAYLOAD		        0xA0                            //Write TX Payload#define		FLUSH_TX			0xE1                            //Flush RX FIFO#define		FLUSH_RX			0xE2                            //Flush TX FIFO#define		REUSE_TX_PL			0xE3                            //Reuse TX Payload#define		ACTIVATE			0x50                            //ACTIVATE#define		DEACTIVATE			0x50                            //DEACTIVATE#define		R_RX_PL_WID			0x60                            //Read width of RX data #define		W_ACK_PAYLOAD		        0xA8                            //Data with ACK#define		W_TX_PAYLOAD_NOACK	        0xB0                            //TX Payload no ACK Request#define		CE_FSPI_ON	                0xFD                            // CE HIGH#define		CE_FSPI_OFF	                0xFC                            // CE LOW#define		RST_FSPI	                0x53                            // RESET#define		NOP_N				0xFF            /******************  控制寄存器 *******************/#define		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		STATUS				0x07#define		OBSERVE_TX			0x08#define		RPD			        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		DEM_CAL				0x19#define         RF_CAL2				0x1A#define         DEM_CAL2			0x1B#define		DYNPD				0x1C#define		FEATURE				0x1D	#define		RF_CAL				0x1E#define		BB_CAL				0x1F/******************  功率档位   *******************/#define         RF13dBm                         0x3f                            // 13dBm #define         RF10dBm                         0X17                            // 10dBm #define         RF8dBm                          0x15                            // 8dbm      #define         RF7dBm                          0x07                            // 7dbm   #define         RF5dBm                          0x2c                            // 5dbm   #define         RF4dBm                          0x06                            // 4dbm   #define         RF2dBm                          0x05                            // 2dbm  #define         RF0dBm                          0X0B                            // 0dBm  #define         RF_3dBm                         0x04                            // -3dBm     #define         RF_6dBm                         0x0A                            // -6dBm #define         RF_10dBm                        0x02                            // -10dBm #define         RF_18dBm                        0x01                            // -18dBm #define         RF_30dBm                        0x00                            // -30dBm /******************  传输类型   *******************/#define         TRANS_ENHANCE_MODE    1                                         //增强模式#define         TRANS_BURST_MODE      2                                         //普通模式/****************  状态标志   ********************/#define         RX_DR_FLAG                      0X40                            // 接收中断标志位#define         TX_DS_FLAG                      0X20                            // 发送完成中断标志位#define         RX_TX_FLAG                      0X60                            // 发送接收完成中断标志位,ack_payload 模式下使用#define         MAX_RT_FLAG                     0X10                            // 发送重传超时中断标志位/****************  传输速率   ********************/#define         DR_1M                          0X00				//通信速率 1Mbps#define         DR_2M                          0X40				//通信速率 2Mbps#define         DR_250K                        0XC0				//通信速率 2Mbps/**************** CE 控制模式 ********************/#define         CE_MODE_HARD                    1				// CE由硬件IO口控制#define         CE_MODE_SOFT                    2				// CE由软件命令控制/**************** SPI控制模式 ********************/#define         SPI_3_LINE_MODE                      1				// 3线SPI   SOP8封装使用#define         SPI_4_LINE_MODE                      2				// 4线SPI   SQFN20封装/合封芯片使用/////////////////////////////////////////////////////////////////////////////////                  根据用户应用,以下部分可能需要修改                       //////////////////////////////////////////////////////////////////////////////////****************** 用户自定义参数   **********************/#define         DEFAULT_CHANNEL                0				//初始化时的频率: 2478 MHz (实际频点为2400+DEFAULT_CHANNEL)         #define         PAYLOAD_WIDTH                  8				//Payload宽度:     8bytes				#define         TRANSMIT_TYPE                  TRANS_BURST_MODE              // TRANS_BURST_MODE    TRANS_ENHANCE_MODE#define         DATA_RATE                      DR_1M                            //通信速率2Mbps     DR_250K       DR_2M    DR_1M#define         RF_POWER                      (RF8dBm |DATA_RATE)		//发射功率8dBm #define         CE_MODE                        CE_MODE_SOFT                     //IO控制CE信号  #define         SPI_MODE                       SPI_3_LINE_MODE                  //4线SPI #if(TRANSMIT_TYPE == TRANS_ENHANCE_MODE)    #define         EN_DYNPLOAD                    0    #define         EN_ACK_PAYLOAD                 1    #define         ACK_PAYLOAD_WIDTH              PAYLOAD_WIDTH#endif/******************* Function declare *******************/void 		RF_Init(uint8_t __rfPower);void        RF_Reset(void);                                        void 		RF_TxMode(void);void	 	RF_RxMode(void);uint8_t 	RF_GetStatus(void);void 		RF_ClearStatus(void);void 		RF_ClearFIFO(void);void 		RF_SetChannel( uint8_t Channel);void    	RF_TxData( uint8_t *ucPayload,  uint8_t length);uint8_t 	RF_DumpRxData( uint8_t *ucPayload,  uint8_t length);void 		RF_Carrier(uint8_t ucChannel_Set, uint8_t rfPower);void        RF_TX_CheckResult(uint8_t *ucAckPayload, uint8_t length);void RF_ReadBuf(uint8_t reg, unsigned char *pBuf, uint8_t length);#endif/****************************************end of file********************************************/
 |