发送模式配置具体的一些配置见下:
/*首先配置发送地址,需要写命令到发送地址寄存器中,然后写入地址,再写入地址的宽度
参数一:写寄存器,写入到发送地址寄存器,表示要对其操作
参数二:写入地址,收发地址相同,通道0的地址为5个字节大小可以随意改变
参数三:写入的地址长度,为5个字节长度
*/
SPI_Write_TxFIFO(W_REGISTER + TX_ADDR,TxAddr, TX_ADDR_WITDH);
/*
然后写入需要使用0通道作为接收端的应答通道,接收端在接收到数据后,记录该地址,然后通过0通道回复应答,
所以,0通道的地址需要和发送端的发送地址相同,这样才能保证接收到接收方发来的应答信号
参数一:写寄存器,写入到通道0寄存器中
参数二:写入通道0的地址,地址和发送端地址相同,保证接收到应答信号
参数三:地址长度,为5个字节长度
*/
SPI_Write_TxFIFO(W_REGISTER + RX_ADDR_P0,TxAddr, TX_ADDR_WITDH);
/*紧接着可以开始写入数据了
参数一:还是写寄存器,写入到写寄存器中,表示开始写数据了
参数二:需要写入的数据
参数三:需要写入的数据长度,长度为4个字节
*/
SPI_Write_TxFIFO(W_TX_PAYLOAD,TxData,TX_DATA_WITDH);
/*接下来需要配置各个寄存器,比如应答方式等,主要配置头开始的六个寄存器*/
//通过写一个字节就可以设置各个寄存器,所以不使用SPI_Write_TxFIFO();函数
SPI_Write_NRF(W_REGISTER+ EN_AA, 0x01);//使能通道0,通道0自动应答允许,要是不需要自动应答,则置0x00
SPI_Write_NRF(W_REGISTER+ EN_RXADDR, 0x01);//允许通道0
//SPI_Write_NRF(W_REGISTER+ SETUP_AW, TX_DATA_WITDH);
SPI_Write_NRF(W_REGISTER+ SETUP_RETR, 0x1a);//设置自动重发,,自动重发十六次
SPI_Write_NRF(W_REGISTER+ RF_CH, 0x40);//设置通道频率是0!!!
SPI_Write_NRF(W_REGISTER + RF_SETUP, 0x07);//射频寄存器使用000 0 11 1,采用1Mbps 0dBm,
SPI_Write_NRF(W_REGISTER+ CONFIG, 0x0e);//设置CRC检验使能有效,十六位iCRC校验,上电,发射模式
|