SPI操作NRF24L01小结

1.SPI初始化
//SPI引脚配置 SCK MOSI NSS 配置为推挽输出 MISO配置为输入
GPIO_Init( SPI_CLK_GPIO_PORT, SPI_CLK_GPIO_PIN, GPIO_MODE_OUT_PP_LOW_FAST );//
GPIO_Init( SPI_MOSI_GPIO_PORT, SPI_MOSI_GPIO_PIN, GPIO_MODE_OUT_PP_HIGH_FAST );
GPIO_Init( SPI_NSS_GPIO_PORT, SPI_NSS_GPIO_PIN, GPIO_MODE_OUT_PP_HIGH_FAST );
GPIO_Init( SPI_MISO_GPIO_PORT, SPI_MISO_GPIO_PIN, GPIO_MODE_IN_PU_NO_IT );
SPI_DeInit();
SPI_Init(SPI_FIRSTBIT_MSB, SPI_BAUDRATEPRESCALER_8, SPI_MODE_MASTER, SPI_CLOCKPOLARITY_LOW, SPI_CLOCKPHASE_1EDGE, SPI_DATADIRECTION_2LINES_FULLDUPLEX, SPI_NSS_SOFT, 0x00);
SPI_Cmd(ENABLE);
2. NRF24L01初始化
void NRF24L01_GPIO_Init( void )
{
//CE配置为推挽输出 IRQ上拉输入
GPIO_Init( RF24L01_CE_GPIO_PORT, RF24L01_CE_GPIO_PIN, GPIO_MODE_OUT_PP_HIGH_FAST );
GPIO_Init( RF24L01_IRQ_GPIO_PORT, RF24L01_IRQ_GPIO_PIN, GPIO_MODE_IN_PU_NO_IT );

RF24L01_SET_CE_LOW( );		//使能设备
RF24L01_SET_CS_HIGH( );		//取消SPI片选

}
3. NRF24L01写指定长度 数据, 地址设备中有效 写入0x20 | addr的地址数据, 由两段字符组成,写配置寄存器0x20命令 + 操作发送寄存器,然后往发送寄存器中写入数据pBuff
void NRF24L01_Write_Buf( uint8_t RegAddr, uint8_t *pBuf, uint8_t len )
{
uint8_t i;

RF24L01_SET_CS_LOW( );		//片选    低电平使能  

drv_spi_read_write_byte( NRF_WRITE_REG | RegAddr );	//写命令 地址
for( i = 0; i < len; i ++ )
{
    drv_spi_read_write_byte( *( pBuf + i ) );		//写数据
}

RF24L01_SET_CS_HIGH( );		//取消片选

}

posted @ 2020-07-09 17:03  楼下小黑·  阅读(598)  评论(0编辑  收藏  举报