初级会员
- 积分
- 63
- 金钱
- 63
- 注册时间
- 2014-1-7
- 在线时间
- 8 小时
|
楼主 |
发表于 2015-12-2 22:02:41
|
显示全部楼层
回复【7楼】jermy_z:
<br>---------------------------------
<br>
<br>这是我rx模式的设置,我看别人也是这么写的
<br>void RX_Mode(void)
<br> {
<br> Clr_NRF24L01_CE;
<br>// NRF24L01_Write_Buf(NRF24L01_WRITE_REG +TX_ADDR,(u8*)RxAddr0,TX_ADR_WIDTH);//写TX节点地址
<br> NRF24L01_Write_Buf(NRF24L01_WRITE_REG +RX_ADDR_P0,(u8*)RxAddr0,RX_ADR_WIDTH); // 接收设备接收通道1使用和发送设备相同的发送地址
<br> NRF24L01_Write_Buf(NRF24L01_WRITE_REG +RX_ADDR_P1,(u8*)RxAddr1,RX_ADR_WIDTH); //设置TX节点地址,主要为了使能ACK
<br>
<br> NRF24L01_Write_Reg(NRF24L01_WRITE_REG+EN_AA,0x03); //使能通道0的自动应答
<br> NRF24L01_Write_Reg(NRF24L01_WRITE_REG+EN_RXADDR,0x03);//使能通道0的接收地址
<br>
<br>
<br> NRF24L01_Write_Reg(NRF24L01_WRITE_REG+RX_PW_P0,RX_PLOAD_WIDTH);//选择通道0的有效数据宽度
<br> NRF24L01_Write_Reg(NRF24L01_WRITE_REG+RX_PW_P1,RX_PLOAD_WIDTH);//选择通道0的有效数据宽度
<br>
<br> NRF24L01_Write_Reg(NRF24L01_WRITE_REG+RF_CH,40); //设置RF通信频率
<br>
<br> NRF24L01_Write_Reg(NRF24L01_WRITE_REG+RF_SETUP,0x0f);//设置TX发射参数,0db增益,2Mbps,低噪声增益开启
<br> NRF24L01_Write_Reg(NRF24L01_WRITE_REG+CONFIG, 0x0f);//配置基本工作模式的参数WR_UP,EN_CRC,16BIT_CRC,接收模式
<br> Set_NRF24L01_CE; //CE为高,进入接收模式
<br> }
<br>
<br>主函数的内容是这样的
<br> NRF24L01_Read_Buf(0x0a,RxAddr0,5); //查地址
<br> NRF24L01_Read_Buf(0x0b,RxAddr1,5);
<br> NRF24L01_Read_Buf(0x07,careg,1);
<br> careg[0]=(careg[0]&0x0e)>>1; //提取位321
<br> LCD_ShowNum(0,210,careg[0],3,16);
<br> if(NRF24L01_RxPacket(tmp_buf)==0)//一旦接收到信息,则显示出来.
<br> {
<br> if((careg[0]&0x0e)>>1==0)//接收通道0-----右手
<br> {
<br> 。。。
<br> }
<br> if((careg[0]&0x0e)>>1==1)//接收通道1-----左手
<br> {
<br> 。。。
<br> }
<br>
<br> }
<br> else ;
<br> LED0=!LED0;
<br>
<br> }; |
|