当前位置:首页 > 2401发送+流程图+电路图
uint t=0;
//24L01发送接收数据宽度定义
#define TX_ADR_WIDTH 5 //5字节的地址宽度 #define RX_ADR_WIDTH 5 //5字节的地址宽度 #define TX_PLOAD_WIDTH 3 //32字节的用户数据宽度 #define RX_PLOAD_WIDTH 3 //32字节的用户数据宽度
const uchar TX_ADDRESS[TX_ADR_WIDTH]={0x34,0x43,0x10,0x10,0x01}; //发送地址
const uchar RX_ADDRESS[RX_ADR_WIDTH]={0x34,0x43,0x10,0x10,0x01}; //发送地址
void magnetic();
void NRF24L01_Init(void);//初始化
void NRF24L01_RX_Mode(void);//配置为接收模式 void NRF24L01_TX_Mode(void);//配置为发送模式
uchar NRF24L01_TxPacket(uchar *txbuf);//发送一个包的数据 uchar NRF24L01_RxPacket(uchar *rxbuf);//接收一个包的数据\\
#define P20=P2;
/****************************************************** /*函数 uchar SPI_RW(uchar uuchar)
/*向NRF24L01写一个字节,同时读出一个字节
/*************************************************************/
uchar SPI_RW(uchar uuchar) { }
/****************************************************** /*函数 uchar SPI_Read(uchar reg) /*NRF24L01的SPI读一个字节时序
/*************************************************************/ uchar SPI_Read(uchar reg) {
uchar reg_val;
CSN=0; //CSN置0,允许指令操作 SPI_RW(reg); //写一条reg指令 reg_val=SPI_RW(0xff); //读取reg的值到reg_val CSN=1; //CSN置1,表示禁止操作 uchar bit_ctr;
for(bit_ctr=0;bit_ctr<8;bit_ctr++) { }
return(uuchar);
MOSI=(uuchar&0x80);//输出uuchar的最高位 uuchar=(uuchar<<1);//左移1位 SCK=1; //时钟线置1 uuchar|=MISO;//同时读取STATUS SCK=0; //时钟线置0
}
return(reg_val); //返回读取的值
/****************************************************** /*函数 uchar SPI_RW_Rge(uchar reg,chuar value) /*NRF24L01的SPI写一个字节到寄存器函数
/*************************************************************/ uchar SPI_RW_Reg(uchar reg,uchar value) { }
void Delay10ms(unsigned int c) //误差 0us {
unsigned char a, b;
//--c已经在传递过来的时候已经赋值了,所以在for语句第一句就不用uchar status;
CSN=0; //CSN置0,允许指令操作 status=SPI_RW(reg);//这指令。并读status SPI_RW(value); //写数据值到reg CSN=1; //CSN置1,表示禁止操作 return(status); //返回STATUS值
赋值了--// for (;c>0;c--)
{
for (b=38;b>0;b--)
}
}
{
for (a=130;a>0;a--);
}
/****************************************************** /*函数 uint SPI_Read_Buf(uchar reg,uchar *pBuf,uchar uchars) /*功能:用于读数据,reg:为寄存器地址 /* /*
pBuf:为等待读出数据地址
uchars:读出数据的个数
/*************************************************************/ uint SPI_Read_Buf(uchar reg,uchar *pBuf,uchar uchars) { }
/****************************************************** /*函数 uint SPI_Write_Buf(uchar reg,uchar *pBuf,uchar uchars)
uchar status,uchar_ctr;
CSN=0; //CSN置0,允许指令操作 status=SPI_RW(reg);
for(uchar_ctr=0;uchar_ctr pBuf[uchar_ctr]=SPI_RW(0); CSN=1; return(status);
共分享92篇相关文档