天线|RF射频
直播中

严岩

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

关于nrf24l01 收发模式切换问题如何解决

最近在做一个近距离监控装置 用nrf24l01 模块  一个2.4G模块需要在接受和发送消息之间相互切换。

我的遇到的问题是 当我从接收模式RX_Mode()切换到发送模式TX_Mode()后,程序一直停在这个函数NRF24L01_TxPacket(tmp_buf)里面,主要是停在while(NRF24L01_IRQ!=0)//等待发送完成这个函数里面

而我直接使用发送模式就没有这个问题,有人碰到过这样的问题吗??我用的是发烧友的代码

这个是NRF24L01_TxPacket()函数

u8 NRF24L01_TxPacket(u8 *txbuf)

        {

        u8 sta;

        SPIx_SetSpeed(SPI_BaudRatePrescaler_8);

        Clr_NRF24L01_CE;

        NRF24L01_Write_Buf(NRF24L01_WR_TX_PLOAD,txbuf,TX_PLOAD_WIDTH);

        Set_NRF24L01_CE;           

        while(NRF24L01_IRQ!=0);        //程序就停在这里了!!!!

        sta=NRF24L01_Read_Reg(STATUS);  

        NRF24L01_Write_Reg(NRF24L01_WRITE_REG+STATUS,sta);

        if(sta&MAX_TX)

                {

                NRF24L01_Write_Reg(NRF24L01_FLUSH_TX,0xff);

                return MAX_TX;

                }

        if(sta&TX_OK)

                {

                return TX_OK;

                }

        return 0xff;

        }

回帖(6)

王盼盼

2020-7-18 18:43:48
自己做沙发~~~~
举报

李林臻

2020-7-18 18:51:13
帮顶
举报

甘蔼宾

2020-7-18 19:11:01
我们的例程是要检测ACK的,开启自动ACK,请问你这个切换到TX以后,另外一个板子会同时切换到RX么?
举报

孙婧

2020-7-18 19:49:42

关了ACK,就得自己加协议确保数据可靠传输。
举报

更多回帖

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