新手入门
- 积分
- 32
- 金钱
- 32
- 注册时间
- 2013-8-10
- 在线时间
- 0 小时
|
<p>数据手册上明确说了 W_REGISTER 这个命令 Executable in power down or standby modes only.</p>
<p>但是看了原子哥的例程</p>
<p>u8 NRF24L01_RxPacket(u8 *rxbuf)<br />
{<br />
u8 sta; <br />
SPI2_SetSpeed(SPI_BaudRatePrescaler_8); //spi速度为9Mhz(24L01的最大SPI时钟为10Mhz) <br />
sta=NRF24L01_Read_Reg(STATUS); //读取状态寄存器的值 <br />
NRF24L01_Write_Reg(WRITE_REG_NRF+STATUS,sta); //清除TX_DS或MAX_RT中断标志<br />
if(sta&RX_OK)//接收到数据<br />
{<br />
NRF24L01_Read_Buf(RD_RX_PLOAD,rxbuf,RX_PLOAD_WIDTH);//读取数据<br />
NRF24L01_Write_Reg(FLUSH_RX,0xff);//清除RX FIFO寄存器 <br />
return 0; <br />
} <br />
return 1;//没收到任何数据<br />
}</p>
<p>收数据的时候,CE没有清零,PRX就处于RX模式, 没有进入power down或者standby 为什么还是可以</p>
<p>
NRF24L01_Write_Reg(WRITE_REG_NRF+STATUS,sta); //清除TX_DS或MAX_RT中断标志</p>
<p>写状态寄存器呢?</p> |
|