⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 nrf2401a_pub._h

📁 NRF2401说明文档
💻 _H
字号:
/****************************************************************************
 **
 **     ERC-RF2401无线收发模块驱动程序的h文档
 **
 ***************************************************************************/


#ifndef nRF2401A_pub_h
#define nRF2401A_pub_h

#include <iom48.h>    //IO寄存器定义文件

/*******************IO定义(根据具体情况重新定义)********************/
#define nRF2401A_CE_DDR      DDRD_Bit7
#define nRF2401A_CS_DDR      DDRB_Bit3
#define nRF2401A_DR1_DDR     DDRB_Bit2
#define nRF2401A_CLK1_DDR    DDRB_Bit5
#define nRF2401A_DATA_DDR    DDRB_Bit4
#define nRF2401A_PWR_UP_DDR  DDRD_Bit5
//
#define nRF2401A_CE          PORTD_Bit7
#define nRF2401A_CS          PORTB_Bit3
#define nRF2401A_DR1         PORTB_Bit2
#define nRF2401A_CLK1        PORTB_Bit5
#define nRF2401A_DATA        PORTB_Bit4
#define nRF2401A_PWR_UP      PORTD_Bit5
//
#define nRF2401A_DR1_PIN     PINB_Bit2
#define nRF2401A_DATA_PIN    PINB_Bit4

/*******************IO初始化(根据具体情况重新定义)********************/
#define nRF2401A_IO_INITIALIZTION()  \
nRF2401A_CE_DDR      = 1;\
nRF2401A_CS_DDR      = 1;\
nRF2401A_DR1_DDR     = 0;\
nRF2401A_CLK1_DDR    = 1;\
nRF2401A_DATA_DDR    = 1;\
nRF2401A_PWR_UP_DDR  = 1;\
nRF2401A_DR1         = 1;\
nRF2401A_PWR_UP      = 0;\
nRF2401A_CLK1        = 0

/*******************宏函数**************************/
#define nRF2401A_READ_DATA() \
  (nRF2401A_DATA_DDR = 0,nRF2401A_DATA = 1)

#define nRF2401A_WRITE_DATA() \
  (nRF2401A_DATA_DDR = 1)

/*掉电模式*/
#define nRF2401A_POWER_DOWN_MODE() \
nRF2401A_PWR_UP = 0

/*空闲模式*/
#define nRF2401A_STANDBY_MODE() \
nRF2401A_PWR_UP = 1;\
nRF2401A_CE     = 0;\
nRF2401A_CS     = 0

/*配置模式*/
#define nRF2401A_CONFIG_MODE() \
nRF2401A_PWR_UP = 1;\
nRF2401A_CE     = 0;\
nRF2401A_CS     = 1;\
for(unsigned char temp=0; temp<10; temp++)

/*收发模式*/
#define nRF2401A_ACTIVE_MODE() \
nRF2401A_PWR_UP = 1;\
nRF2401A_CE     = 1;\
nRF2401A_CS     = 0;\
for(unsigned char temp=0; temp<10; temp++)

#define nRF2401A_CONFIG_1BIT(rxen) \
nRF2401A_WRITE_DATA();\
nRF2401A_CONFIG_MODE();\
nRF2401A_DATA = rxen;\
nRF2401A_CLK1 = 0;\
nRF2401A_CLK1 = 0;\
nRF2401A_CLK1 = 0;\
nRF2401A_CLK1 = 0;\
nRF2401A_CLK1 = 1;\
nRF2401A_CLK1 = 1;\
nRF2401A_CLK1 = 1;\
nRF2401A_CLK1 = 1;\
nRF2401A_CLK1 = 0;\
nRF2401A_STANDBY_MODE()

/*******************配置字节与字节格式*********************/
//--------------------------------------------------------------
//<RF-Configuration-Register 配置信息>

#define RXEN	    0x1   //收发模式选择   0/发射模式  1/接收模式
#define RF_CH	    0x2   //载波频率 freq=2400+RF_CH*1=2400+2*1=2402MHz

#define RF_PWR	    0x3   //增益强度    0/-20dB   1/-10dB   2/-5dB   3/0dB
#define XO_F	    0x3   //外部晶振频率  0/4M  1/8M  2/12M  3/16M  4/20M
#define RFDR_SB	    0x0   //传输速率    0/250K bps   1/1M bps
#define CM          0x1   //传输方式    0/direct mode   1/ShockBurst mode
#define RX2_EN      0x0   //第二通道接收使能   0/关闭  1/使能

#define CRC_EN      0x1   //CRC校验使能        0/关闭  1/使能
#define CRC_L       0x1   //CRC校验字节长度    0/8位CRC校验  1/16位CRC校验
#define ADDR_W      0x10  //地址字节位数

#define ADDR1_Byte4 0x0   
#define ADDR1_Byte3 0xcc  
#define ADDR1_Byte2 0xcc  
#define ADDR1_Byte1 0xcc  
#define ADDR1_Byte0 0xcc  //第一通道接收地址

#define ADDR2_Byte4 0x0   
#define ADDR2_Byte3 0x1c  
#define ADDR2_Byte2 0xcc  
#define ADDR2_Byte1 0xcc  
#define ADDR2_Byte0 0xcc  //第二通道接收地址

#define DATA1_W     0xe0  //第一通道数据长度

#define DATA2_W     0xe0  //第二通道数据长度
//-----------------------------------------------------------

//<将设置信息组合成每个字节的数据信息,此区域无需修改>
#define nRF2401AConfig_Byte0       (RF_CH<<1  | RXEN)
#define nRF2401AConfig_Byte1       (RX2_EN<<7 | CM<<6 | RFDR_SB<<5 | XO_F<<2 | RF_PWR)
#define nRF2401AConfig_Byte2       (ADDR_W<<2 | CRC_L<<1 | CRC_EN)
#define nRF2401AConfig_Byte3       (ADDR1_Byte0)
#define nRF2401AConfig_Byte4       (ADDR1_Byte1)
#define nRF2401AConfig_Byte5       (ADDR1_Byte2)
#define nRF2401AConfig_Byte6       (ADDR1_Byte3)
#define nRF2401AConfig_Byte7       (ADDR1_Byte4)
#define nRF2401AConfig_Byte8       (ADDR2_Byte0)
#define nRF2401AConfig_Byte9       (ADDR2_Byte1)
#define nRF2401AConfig_Byte10      (ADDR2_Byte2)
#define nRF2401AConfig_Byte11      (ADDR2_Byte3)
#define nRF2401AConfig_Byte12      (ADDR2_Byte4)
#define nRF2401AConfig_Byte13      (DATA1_W)
#define nRF2401AConfig_Byte14      (DATA2_W)
//------------------------------------------------------------

/*******************函数申明*********************/
void nRF2401AWrite8Bit(unsigned char byte);
unsigned char nRF2401ARead8BitChannel_1(void);
void nRF2401AConfigRegisters(unsigned char* p);
void nRF2401AWriteTxPayload(unsigned char* p,unsigned char total);
void nRF2401AReadRxPayload(unsigned char* p,unsigned char total);
void nRF2401AInitializtion();
unsigned char nRF2401AScanf(unsigned char* p);
void nRF2401APrintf(unsigned char* p);


#endif  //nRF2401A_pub_h


















⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -