|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区
您需要 登录 才可以下载或查看,没有账号?立即注册
×
#ifndef _nrf2401_H_
#define _nrf2401_H_
#define uchar unsigned char
#define uint unsigned int
#include <reg52.h>
//定义管脚
#define CSN_0 P1 &= ~0x01 //1.0
#define CSN_1 P1 |= 0X01 //
#define MOSI_0 P1 &= ~0X02 //1.1
#define MOSI_1 P1 |= 0X02 //
#define CE_0 P1 &= ~0X04 //1.2
#define CE_1 P1 |= 0X04 //
#define SCK_0 P1 &= ~0X08 //1.3
#define SCK_1 P1 |= 0X08 //
#define MISO P1 &= 0X10 //1.4
#define IRQ P1 &= 0X20 //1.5
//定义命令
#define READ_REG 0X00 // 读寄存器指令
#define WRITE_REG 0x20 // 写寄存器指令
#define RX_PL_WID 0x60 // 读接收数据的长度
#define RD_RX_PLOAD 0x61 // 读取接收数据指令
#define WR_TX_PLOAD 0xA0 // 写待发数据指令
#define FLUSH_TX 0xE1 // 冲洗发送 FIFO指令
#define FLUSH_RX 0xE2 // 冲洗接收 FIFO指令
#define REUSE_TX_PL 0xE3 // 定义重复装载数据指令
#define NOP 0xFF // 保留
//定义寄存器
#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栈入栈出状态寄存器设置
#define TX_ADDR_WIDTH 5 //地址长度
#define RX_ADDR_WIDTH 5
#define RX_WIDTH 3 //数据长度
#define TX_WIDTH 3
#define MODE_TX 1 //发送模式
#define MODE_RX 0 //接收模式
extern uchar TXBUF[3]; //数据
extern uchar RXBUF[3]; //接收数组
extern uchar TX_ADDRESS[5]; //地址
extern uchar RX_ADDRESS[5];
void delay(uint t);
uchar spi_rw(uchar date);
void init_2401(uchar);
uchar read_reg(uchar reg);
uchar write_reg(uchar reg,uchar dat);
uchar read_buf(uchar reg,uchar *pbuf,uchar width);
uchar write_buf(uchar reg,uchar *pbuf,uchar width);
void tx_packet(uchar *tx_buf);
void rx_packet(uchar *rx_buf);
void tx_packet_ack(uchar *tx_buf,uchar len);
uchar check_add(void);//检测函数
void check_even(void);
void chakan(void);
/*
extern uchar code TXBUF[3]={0x01,0x02,0x03}; //数据
extern uchar code RXBUF[3]; //接收数组
extern uchar code TX_ADDRESS[5]={0x20,0x50,0x40,0x80,0x60}; //地址
extern uchar code RX_ADDRESS[5]={0x20,0x50,0x40,0x80,0x60};
uchar code TXBUF[3]={0x01,0x02,0x03}; //数据
uchar code RXBUF[3]; //接收数组
uchar code TX_ADDRESS[5]={0x20,0x50,0x40,0x80,0x60}; //地址
uchar code RX_ADDRESS[5]={0x20,0x50,0x40,0x80,0x60};
*/
#endif |
|