初级会员
- 积分
- 86
- 金钱
- 86
- 注册时间
- 2019-8-1
- 在线时间
- 25 小时
|
//启动NRF24L01发送一次数据
//txbuf:待发送数据首地址
//返回值:0,接收完成;其他,错误代码
u8 NRF24L01_RxPacket(u8 *rxbuf)
{
u8 sta;
SPI2_SetSpeed(SPI_BAUDRATEPRESCALER_8); //spi速度为6.75Mhz(24L01的最大SPI时钟为10Mhz)
sta=NRF24L01_Read_Reg(STATUS); //读取状态寄存器的值
NRF24L01_Write_Reg(NRF_WRITE_REG+STATUS,sta); //清除TX_DS或MAX_RT中断标志
if(sta&RX_OK)//接收到数据
{
NRF24L01_Read_Buf(RD_RX_PLOAD,rxbuf,RX_PLOAD_WIDTH);//读取数据
NRF24L01_Write_Reg(FLUSH_RX,0xff); //清除RX FIFO寄存器
return 0;
}
return 1;//没收到任何数据
}
加了颜色的那个读取状态寄存器 后再写入写1清0 不是把RX_DR也清除了吗就没有RX_OK了呀 不是应该放在后面吗 ???我写的程序加了这段在前面 接收不了数据 原子哥代码就可以 ???
|
|