初级会员
- 积分
- 69
- 金钱
- 69
- 注册时间
- 2014-3-25
- 在线时间
- 1 小时
|
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为高使能接收模式
}
|
|