|
在调试24l01时,寄存器配置都正常,在发射数据时IREF会出现一个方波,IRQ脚也会出现发送完毕的低脉冲信号,但是检测VDD_PA,ANT1,ANT2都无脉冲信号出现,这应该还是数据没有通过天线发射出去,请问哪位高手知道问题在哪里不?
还有如何察看发送地址寄存器的地址值?
配置及发送配置程序如下:
自动应答及自动重传禁止,通道0允许
void nRF24L01_TxPacket(unsigned char * tx_buf)
{
CLR_CE();
//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);
SPI_W_Reg(FLUSH_TX);
SPI_RW_Reg(WRITE_REG + CONFIG, 0x5c);
SPI_RW_Reg(WRITE_REG + EN_AA, 0x00);
SPI_W_Reg(FLUSH_TX);
SPI_RW_Reg(WRITE_REG + EN_RXADDR, 0x01);
SPI_RW_Reg(WRITE_REG + RX_PW_P0, TX_PLOAD_WIDTH);
SPI_RW_Reg(WRITE_REG + STATUS, 0x7e);
SPI_Write_Buf(WR_TX_PLOAD, tx_buf, TX_PLOAD_WIDTH);
SPI_RW_Reg(WRITE_REG + CONFIG, 0x5e);
SET_CE();
Delay_10us(1);
CLR_CE();
Delay_10us(13);
SPI_RW_Reg(WRITE_REG + STATUS, 0x20);
SPI_W_Reg(FLUSH_TX);
//sta=SPI_Read(STATUS); // read register STATUS's value
//SPI_RW_Reg(WRITE_REG+STATUS,SPI_Read(READ_REG+STATUS)); // clear interrupt flag(TX_DS)
}
/**************************************************/
void Config_nRF24L01()
{
CLR_CE();
SPI_RW_Reg(WRITE_REG + CONFIG, 0x3e); //Enable CRC;CRCO:2Byte;PWR_UP:1;PRIM_RX:PTX
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); // Disable auto ack
SPI_RW_Reg(WRITE_REG + EN_RXADDR, 0x01); // enable pipe0
SPI_RW_Reg(WRITE_REG + SETUP_AW, 0x02); //Addr width:4Byte
SPI_RW_Reg(WRITE_REG + SETUP_RETR, 0x00); //Disable ReTr
SPI_RW_Reg(WRITE_REG + RF_CH, 0x32); // Channel 2450MHz
SPI_RW_Reg(WRITE_REG + RF_SETUP, 0x03); // Data range:1MHz; PWR:0dBm
SPI_RW_Reg(WRITE_REG + RX_PW_P0, TX_PLOAD_WIDTH);
SET_CE();
Delay_10us(13);
} |
阿莫论坛20周年了!感谢大家的支持与爱护!!
曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……
|