天线|RF射频
直播中

王桂香

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

NRF24L01调试出现错误的解决办法?

今天用同事的2个NRF24L01找了个例程在板上试,主机发送数据,从机接受得到,但是主机里面调用函数u8 NRF_Tx_Dat(u8 *txbuf)里面卡住了,会不会是IRQ引脚问题呢? IRQ引脚我设置为上拉,理论上是发送和接受完后IRQ变低电平。

          SPI_RW_Reg(WRITE_REG1 + CONFIG, 0x0e);      TX_mode()

        SPI_RW_Reg(WRITE_REG1 + CONFIG, 0x0f);      RX_mode()

      

原子哥,求不吝赐教。

        



u8 NRF_Tx_Dat(u8 *txbuf)

{

        u8 state;  




        NRF_CE_LOW();

                                       

        SPI_NRF_WriteBuf(WR_TX_PLOAD,txbuf,TX_PLOAD_WIDTH);    //到这里发送都是正常的,但是我检测返回就是没有。




        NRF_CE_HIGH();

                                            

        while(NRF_Read_IRQ()!=0);                                                             

                                      

        state = SPI_NRF_ReadReg(STATUS);

                 

        SPI_NRF_WriteReg(NRF_WRITE_REG+STATUS,state);         




        SPI_NRF_WriteReg(FLUSH_TX,NOP);   




        if(state&MAX_RT)                  

                         return MAX_RT;




        else if(state&TX_DS)            

                        return TX_DS;

         else                                                  

                        return ERROR;               

}

回帖(3)

李继明

2020-4-27 09:40:46
刚又测试了下,发现就是卡在了while(NRF_Read_IRQ()!=0);难道是我的设置有问题,再检查下。
举报

李锰

2020-4-27 09:49:48
有个网友做了和你类似的:http://www.openedv.com/posts/list/20816.htm
举报

李万寿

2020-4-27 09:59:29
已经发现问题,IRQ使用的端口一直无法拉低,把PA3换成PA4一切正常。
举报

更多回帖

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