天线|RF射频
直播中

李小雯

7年用户 174经验值
私信 关注
[问答]

spi2与nrf24l01复位不能接收是为什么?

只有上电才能接收几次!复位不能接收!

以下是代码:

配置接收模式:

void NRF24L01_RX_Mode(void)

{

NRF24L01_CE=0;

NRF24L01_Write_Reg(FLUSH_RX,0xff);//清除TX FIFO寄存器         

          NRF24L01_Write_Buf(WRITE_REG_NRF+RX_ADDR_P0,(u8*)RX_ADDRESS,RX_ADR_WIDTH);//写RX节点地址



          NRF24L01_Write_Reg(WRITE_REG_NRF+EN_AA,0x00);    //使能通道0的自动应答   

          NRF24L01_Write_Reg(WRITE_REG_NRF+EN_RXADDR,0x01);//使能通道0的接收地址           

          NRF24L01_Write_Reg(WRITE_REG_NRF+RF_CH,40);             //设置RF通信频率                  

          NRF24L01_Write_Reg(WRITE_REG_NRF+RX_PW_P0,RX_PLOAD_WIDTH);//选择通道0的有效数据宽度            

          NRF24L01_Write_Reg(WRITE_REG_NRF+RF_SETUP,0x07);//设置TX发射参数,0db增益,2Mbps,低噪声增益开启   

          NRF24L01_Write_Reg(WRITE_REG_NRF+CONFIG, 0x0f);//配置基本工作模式的参数WR_UP,EN_CRC,16BIT_CRC,接收模式

          NRF24L01_CE = 1; //CE为高,进入接收模式         +

delay_us(20);

}



接收函数:

u8 NRF24L01_RxPacket(u8 *rxbuf)

{

u8 sta;                                                                              

SPI2_SetSpeed(SPI_BaudRatePrescaler_16); //spi速度为9Mhz(24L01的最大SPI时钟为10Mhz)   

sta=NRF24L01_Read_Reg(STATUS);  //读取状态寄存器的值            

NRF24L01_Write_Reg(WRITE_REG_NRF+STATUS,sta); //清除TX_DS或MAX_RT中断标志

if(sta&RX_OK)//接收到数据

{

NRF24L01_Read_Buf(RD_RX_PLOAD,rxbuf,RX_PLOAD_WIDTH);//读取数据

NRF24L01_Write_Reg(FLUSH_RX,0xff);//清除RX FIFO寄存器

return 1;

}           

return 0;//没收到任何数据

}



主函数:



NRF24L01_Init();

NRF24L01_RX_Mode();

//        Delay(20);

while(1)

{

    if(NRF24L01_RxPacket(tmp_buf))

    {

for(i=1;i
    {

           LCD_ShowxNum(0+j,120,*tmp_buf,1,16,0,0x0000);

              *tmp_buf=tmp_buf;

            j+=30;

            if(j>240)

            j=0;

     }

          LCD_ShowxNum(100,250,num++,3,16,0,0x00de);

     }

}


回帖(6)

刘刚

2020-5-22 07:53:13
求各位大神指点啊
举报

王红

2020-5-22 08:07:45
看不出问题。。。
举报

杨阳

2020-5-22 08:25:47

我也是实在找不到什么问题了啊,但是就是只能接收几次就接收不了了啊
举报

马念

2020-5-22 08:44:17

会不会存在芯片自己死机的情况?我记得NRF2401AG就存在死机的情况!因此程序运行一段时间后复位一次!!
举报

更多回帖

发帖
×
20
完善资料,
赚取积分