主要问题是把24l01初始化,接收模式,接收数据正常,但是配置成发送模式,数据一直发布出来,请问有没有遇到这样的情况或者指点一下
void Set_NRF24L01_TxMode(void)
{
RF24L01_CE_0 ;
SPI_Write_Buf(FLUSH_TX,0x0,0x0);
SPI_RW_Reg(WRITE_REG + CONFIG, 0x7E); // IRQ收发完成中断响应,16位CRC ,主接收
RF24L01_CE_1;
delay_ms(3); //注意不能太小
}
//****************************************************************************************
//NRF24L01初始化
//***************************************************************************************/
void init_NRF24L01(void)
{
RF_PORT_INIT();
RF24L01_CE_0 ; // chip enable
RF24L01_CSN_1; // Spi disable
RF24L01_SCK_0; // Spi clock line init high
SPI_Write_Buf(WRITE_REG + TX_ADDR, TX_ADDRESS, TX_ADR_WIDTH); // 写本地地址
SPI_Write_Buf(WRITE_REG + RX_ADDR_P0, RX_ADDRESS, RX_ADR_WIDTH); // 写接收端地址
//SPI_RW_Reg(WRITE_REG + EN_AA, 0x00); // 频道0自动 ACK应答允许
SPI_RW_Reg(WRITE_REG + EN_AA, 0x01); // 频道0自动 ACK应答允许
//DBG_TB( SPI_Read(EN_AA));
SPI_RW_Reg(WRITE_REG + SETUP_RETR,0x0F); //自动重发15次
//DBG_TB( SPI_Read( SETUP_RETR));
SPI_RW_Reg(WRITE_REG + EN_RXADDR, 0x01); // 允许接收地址只有频道0,如果需要多频道可以参考Page21
SPI_RW_Reg(WRITE_REG + RF_CH, 0); // 设置信道工作为2.4GHZ,收发必须一致
SPI_RW_Reg(WRITE_REG + RX_PW_P0, RX_PLOAD_WIDTH); //设置接收数据长度,本次设置为32字节
SPI_RW_Reg(WRITE_REG + RF_SETUP, 0x07); //设置发射速率为1MHZ,发射功率为最大值0dB
SPI_RW_Reg(WRITE_REG + CONFIG, 0x0E); // IRQ收发完成中断响应,16位CRC ,主接收
// DBG_TB( SPI_Read(CONFIG));
// RF24L01_CE_1 ;
delay_ms(3);
}
读写寄存器没有任何问题,就是发送有问题