51单片机+NRF24L01发送接收问题! 15

主程序:voidmain(void){ucharzt,zy;init_NRF24L01();TxBuf[1]=0;Delay(6000);while(1){TxBuf[1... 主程序:

void main(void)
{
uchar zt,zy;
init_NRF24L01() ;
TxBuf[1] = 0 ;
Delay(6000);
while(1)
{

TxBuf[1]="a";
nRF24L01_TxPacket(TxBuf);
TxBuf[1]=0;
Delay(6000);
Delay(6000);
zt=0;
zt=SPI_Read(STATUS);
if(zt==0x2e)
{
LED=1;
Delay(6000);
Delay(6000);
}
Delay(6000);
SPI_RW_Reg(WRITE_REG+STATUS,0XFF);
Delay(6000);
zy=0;
zy=SPI_Read(FIFO_STATUS);
if(zy==0x11)
{
LED=0;
Delay(6000);
Delay(6000);
}
Delay(6000);
Delay(6000);
}

}
主程序能发送成功
——————————————————————————————————
接收程序:

void main(void)
{

unsigned char RxBuf[20]={0}; //
init_NRF24L01() ;
//SetRX_Mode();
while(1)
{
SetRX_Mode();
if(nRF24L01_RxPacket(RxBuf)) // Transmit Tx buffer data
{
if( RxBuf[1]=="a")
{
LED=1;
}
RxBuf[1]==0x00;
}
}
}
接收不成功,哪位懂得看看是不是哪里有问题,谢谢
展开
 我来答
郭田享
2015-10-26 · TA获得超过2438个赞
知道小有建树答主
回答量:1091
采纳率:68%
帮助的人:553万
展开全部
检查一下波特率的设置。
主程序:

void main(void)
{
uchar zt,zy;
init_NRF24L01() ;
TxBuf[1] = 0 ;
Delay(6000);
while(1)
{

TxBuf[1]="a";
nRF24L01_TxPacket(TxBuf);
TxBuf[1]=0;
Delay(6000);
Delay(6000);
zt=0;
zt=SPI_Read(STATUS);
if(zt==0x2e)
{
LED=1;
Delay(6000);
Delay(6000);
}
Delay(6000);
SPI_RW_Reg(WRITE_REG+STATUS,0XFF);
Delay(6000);
zy=0;
zy=SPI_Read(FIFO_STATUS);
if(zy==0x11)
{
LED=0;
Delay(6000);
Delay(6000);
}
Delay(6000);
Delay(6000);
}

}
主程序能发送成功
——————————————————————————————————
接收程序:

void main(void)
{

unsigned char RxBuf[20]={0}; //
init_NRF24L01() ;
//SetRX_Mode();
while(1)
{
SetRX_Mode();
if(nRF24L01_RxPacket(RxBuf)) // Transmit Tx buffer data
{
if( RxBuf[1]=="a")
{
LED=1;
}
RxBuf[1]==0x00;
}
}
追问
看了这些资料还没有发现有提到过波特率
波特率只在与PC通讯的时候需要设置
我现在是2401发 24L01接收! MCU与NRF24L01之间的通讯是SPI接口!
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式