函数voidSPI_RW_RegucharregucharvalueCSN0CSN置低,开始传输数据SPI_RWreg选择寄存器,同时返回状态字SPI_RWvalue然后写数据到该寄存器CSN1CSN拉高,结束数据传输函数:ui
tSPI_Read_BufucharregucharpBufucharuchars功能用于SPI连读数据,reg:为寄存器地址,pBuf:为待读出数据地址,uchars:读出
f数据的个数voidSPI_Read_BufucharregucharpBufucharbytesuchariCSN0CSN置低,开始传输数据SPI_RWreg选择寄存器,同时返回状态字fori0ibytesipBufiSPI_RW0逐个字节从
RF24L01读出CSN1CSN拉高,结束数据传输函数:ucharSPI_Write_BufucharregucharpBufucharuchars功能用于SPI连写数据:为寄存器地址,pBuf:为待写入数据地址,uchars:写入数据的个数voidSPI_Write_BufucharregucharpBufucharbytesuchariCSN0CSN置低,开始传输数据SPI_RWreg选择寄存器,同时返回状态字fori0ibytesiSPI_RWpBufi逐个字节写入
RF24L01CSN1CSN拉高,结束数据传输以下是
rf24l01的应用层函数void
rf_delayui
ta13010whileaNRF24L01初始化voidi
it_NRF24L01voidCE0待机SPI_RW_RegWRITE_REGCONFIG0x0f配置寄存器设置为接收模式
fSPI_RW_RegWRITE_REGEN_AA0x01通道0自动ACK应答允许0x01SPI_RW_RegWRITE_REGEN_RXADDR0x01允许接收地址只有通道0,如果需要多频道可以参考Page210x01SPI_RW_RegWRITE_REGSETUP_AW0x03收发地址宽度设置为5个字节SPI_RW_RegWRITE_REGSETUP_RETR0x0a等待25086us重发10次SPI_RW_RegWRITE_REGRF_CH0设置信道工作为24GHZ,收发必须一致SPI_RW_RegWRITE_REGRF_SETUP0x07设置发射速率为1MHZ,发射功率为最大值0dBSPI_Write_BufWRITE_REGRX_ADDR_P0RX_ADDRESS_0RX_ADR_WIDTH为了应答接收设备,接收通道0地址和发送地址相同SPI_Write_BufWRITE_REGTX_ADDRTX_ADDRESSTX_ADR_WIDTH写本地发送地址SPI_RW_Regr