接收地址一样)SPI_Write_BufWRITE_REGRX_ADDR_P0TX_ADDRESSTX_ADR_WIDTH为了应答接收设备,接收通道0地址和发送地址相同(发射端设置0通道接收应答信号)SPI_Write_BufWR_TX_PLOADBUFTX_PLOAD_WIDTH写数据包到TXFIFO(前以定义BUF数组发送数据4字节,写数据用于发送模式)SPI_RW_RegWRITE_REGEN_AA0x01使能接收通道0自动应答SPI_RW_RegWRITE_REGEN_RXADDR0x01使能接收通道0SPI_RW_RegWRITE_REGSETUP_RETR0x0a自动重发延时等待250us86us,自动重发10次
fSPI_RW_RegWRITE_REGRF_CH40选择射频通道0x40SPI_RW_RegWRITE_REGRF_SETUP0x07数据传输率1Mbps,发射功率0dBm,低噪声放大器增益SPI_RW_RegWRITE_REGCONFIG0x0eCRC使能,16位CRC校验,上电CE1函数:Check_ACK描述:检查接收设备有无接收到数据包,设定没有收到应答信号是否重发ucharCheck_ACKbitclearwhileIRQ(当收到中断信号时,保持在该位置,没收到往下执行)staSPI_RWNOP返回状态寄存器ifMAX_RTifclear是否清除TXFIFO,没有清除在复位MAX_RT中断标志后重发SPI_RWFLUSH_TX(清除TXFIFO寄存器应用于发射模式下)SPI_RW_RegWRITE_REGSTATUSsta清除TX_DS或MAX_RT中断标志IRQ1ifTX_DSretur
0x00返回的值表示什么意思elseretur
0xff返回的值表示什么意思函数:CheckButto
s描述:检查按键是否按下,按下则发送一字节数据voidCheckButto
sP30x00应该没什么用,将其屏蔽ifP37读取P30状态
fdelay_ms20ifP37读取P30状态TX_BUF0DATA数据送到缓存(ucharDATA0x01)TX_ModeTX_BUF把
RF24L01设置为发送模式并发送数据LEDDATA数据送到LED显示Check_ACK1等待发送完毕,清除TXFIFOdelay_ms250delay_ms250LED0xff关闭LEDRX_Mode设置为接收模式whileP37DATA1ifDATADATA0x01函数:mai
描述:主函数voidmai
voidi
it_io初始化IORX_Mode设置为接收模式while1CheckButto
s按键扫描staSPI_ReadSTATUS读状态寄存器ifRX_DR判断是否接受到数据SPI_Read_BufRD_RX_PLOADRX_BUFTX_PLOAD_WIDTH从RXFIFO读出数据flag1SPI_RW_RegWRITE_REGSTATUSstar