打印
[应用相关]

NRF24L01 接收模式下没有发送方也能接收到数据

[复制链接]
1030|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
shuishuo615|  楼主 | 2015-1-4 09:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我想让NRF24L01接收到数据后再做后续的事情

于是,我这样写while(!nRF24L01_RxPacket(RxBuf,&rxno));
其中nRF24L01_RxPacket(RxBuf,&rxno)的返回值是1表示接收到数据,0表示没有接收到数据。

但是。。。奇怪的事情是,即便没有任何发送节点,依然会执行后面的语句而不是等在while那里。。。

函数nRF24L01_RxPacket中,rx_buf是接收的数据,rx_no是接收的通道号码


求问有遇到过类似的情况吗?


uchar nRF24L01_RxPacket(uchar* rx_buf,uchar* rx_no)
{
    uchar revale=0;
    uchar RX_P_NO;                                         //判断哪个通道接收到数据
    uchar sta=SPI_Read(STATUS);             // 读取状态寄存其来判断数据接收状况               
        if(sta&0x40)                 // 判断是否接收到数据
        {
            RX_P_NO = sta&0x0e;                        //获取通道号
            PORT2 &=~BIT(CE);                        //SPI使能
            switch(RX_P_NO)
            {
                    case 0x00: {SPI_Read_Buf(RD_RX_PLOAD,rx_buf,TX_PLOAD_WIDTH);*rx_no = '0';} break;
                    case 0x02: {SPI_Read_Buf(RD_RX_PLOAD,rx_buf,TX_PLOAD_WIDTH);*rx_no = '1';} break;
                    case 0x04: {SPI_Read_Buf(RD_RX_PLOAD,rx_buf,TX_PLOAD_WIDTH);*rx_no = '2';} break;
                    case 0x06: {SPI_Read_Buf(RD_RX_PLOAD,rx_buf,TX_PLOAD_WIDTH);*rx_no = '3';} break;
                    case 0x08: {SPI_Read_Buf(RD_RX_PLOAD,rx_buf,TX_PLOAD_WIDTH);*rx_no = '4';} break;
                    case 0x0a: {SPI_Read_Buf(RD_RX_PLOAD,rx_buf,TX_PLOAD_WIDTH);*rx_no = '5';} break;
                   
                    default:break;
            }
            //SPI_Read_Buf(RD_RX_PLOAD,rx_buf,TX_PLOAD_WIDTH);// read receive payload from RX_FIFO buffer
            SPI_RW_Reg(FLUSH_RX ,0xff ); //设置接收数据长度
            revale =1;                        //读取数据完成标志
        }
        SPI_RW_Reg(WRITE_REG+STATUS,sta);   //接收到数据后RX_DR,TX_DS,MAX_PT都置高为1,通过写1来清楚中断标志
        return revale;
}

沙发
mmuuss586| | 2015-1-4 18:42 | 只看该作者

没有用过这个无线模块;
楼主找淘宝卖这些模块的厂家问问看;

使用特权

评论回复
板凳
shuishuo615|  楼主 | 2015-1-4 20:04 | 只看该作者
mmuuss586 发表于 2015-1-4 18:42
没有用过这个无线模块;
楼主找淘宝卖这些模块的厂家问问看;

谢谢,有点诡异。。。其他使用收发倒是挺正常。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

8

主题

66

帖子

0

粉丝