天线|RF射频
直播中

丁冬芹

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

NRF24L01通道1接收数据没有成功的原因?

之前用通道0接收数据成功,现在想试试通道1,没成功。不知道问题处在哪里,求大神指点。
//==========================发送===================================
void TX_mode(uchar *BUF)
{
        CE=0;
        SPI_Write_Buf(WRITE_REG + TX_ADDR, TX_ADDRESS, TX_ADR_WIDTH);       // 写入发送地址
          SPI_Write_Buf(WRITE_REG + RX_ADDR_P0, TX_ADDRESS, TX_ADR_WIDTH);   // 为了应答接收设备,接收通道0地址和发送地址相同
          SPI_Write_Buf(WR_TX_PLOAD, BUF, RX_PLOAD_WIDTH);                              // 写数据包到TX FIFO
          SPI_RW_Reg(WRITE_REG + EN_AA, 0x02);                                                 // 使能接收通道1自动应答
          SPI_RW_Reg(WRITE_REG + EN_RXADDR, 0x02);                                         // 使能接收通道1
          SPI_RW_Reg(WRITE_REG + SETUP_RETR, 0x0a);                                        // 自动重发延时等待250us+86us,自动重发10次
          SPI_RW_Reg(WRITE_REG + RF_CH, 1);                                                      // 设置信道工作为2.4GHZ,收发必须一致
          SPI_RW_Reg(WRITE_REG + RF_SETUP, 0x07);                                            // 数据传输率1Mbps,发射功率0dBm,低噪声放大器增益
          SPI_RW_Reg(WRITE_REG + CONFIG, 0x0e);                                               // CRC使能,设成发送模式,16位CRC校验,上电,上电模式
        CE=1;
}
//==========================接收===================================
void RX_mode()
{
        CE=0;
        SPI_Write_Buf(WRITE_REG + RX_ADDR_P1, TX_ADDRESS, TX_ADR_WIDTH);     // 接收设备接收通道1使用和发送设备相同的发送地址
          SPI_RW_Reg(WRITE_REG + EN_AA, 0x02);                                                   // 使能接收通道1自动应答
          SPI_RW_Reg(WRITE_REG + EN_RXADDR, 0x02);                                           // 使能接收通道1
          SPI_RW_Reg(WRITE_REG + RF_CH, 1);                                                       // 设置信道工作为2.4GHZ,收发必须一致
        SPI_RW_Reg(WRITE_REG + RX_PW_P1,RX_PLOAD_WIDTH);                           //写接收数据通道1有效数据宽度
          SPI_RW_Reg(WRITE_REG + RF_SETUP, 0x07);                                             // 数据传输率1Mbps,发射功率0dBm,低噪声放大器增益
        SPI_RW_Reg(WRITE_REG + CONFIG, 0x0f);                                                // CRC使能,设成接收模式,16位CRC校验,上电,上电模式
        CE=1;                                                                                                    //置CE为高使能接收模式
}

回帖(1)

彭逸晨

2020-6-5 07:25:22
帮顶
举报

更多回帖

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