?? nrf2401a_pub.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 + -