3,846
社区成员
发帖
与我相关
我的任务
分享
void nRF24L01_RX_Mode()
{
RF_CE = 0;
SPI_Write_Buf(WRITE_REG + RX_ADDR_P0, RX_ADDRESS, RX_ADR_WIDTH);// 设置接收地址
SPI_RW_Reg(WRITE_REG + EN_AA, 0x00); // 不使用自动应答
SPI_RW_Reg(WRITE_REG + EN_RXADDR, 0x01); // 使能Pipe0
SPI_RW_Reg(WRITE_REG + SETUP_AW, 0x03); // 5字节的地址
SPI_RW_Reg(WRITE_REG + SETUP_RETR, 0x00); // 禁止重发
SPI_RW_Reg(WRITE_REG + RF_CH, 20); // 设置工作通道频率(收发必须一致)
SPI_RW_Reg(WRITE_REG + RX_PW_P0, TX_PLOAD_WIDTH); // 设置Pipe0接收通道有效数据宽度
SPI_RW_Reg(WRITE_REG + RF_SETUP, 0x07); // 设置射频寄存器
SPI_RW_Reg(WRITE_REG + CONFIG, 0x0f); // 接收
RF_CE = 1;
Delay_us(150);
}
while(!(nRF24L01_RxPacket(RX_BUF)));
接收端我就让他这么反复查询STATUS,这样会出现慢的情况吗?还有上面说的距离过近过近也不行啊?