初级会员
- 积分
- 86
- 金钱
- 86
- 注册时间
- 2013-7-8
- 在线时间
- 0 小时
|
楼主 |
发表于 2013-7-12 10:35:14
|
显示全部楼层
回复【5楼】正点原子:
<br>---------------------------------
<br>发送与接收地址我都配成一样的 用两个STM32测试过没问题
<br>就是先让你看看 我的51的TX模式 和32的RX模式配的对不对
<br>
<br>51发送端配置如下
<br>void TX_Mode(void)
<br> {
<br> CE = 0;
<br> //SPI_WR_Reg(WRITE_REG + CONFIG, 0x02); //0x0E // IRQ收发完成中断响应,16位CRC,主发送
<br>
<br> SPI_Write_Buf(WRITE_REG + TX_ADDR, TX_ADDRESS, TX_ADR_WIDTH); // 写本地地址
<br> SPI_Write_Buf(WRITE_REG + RX_ADDR_P0, RX_ADDRESS, RX_ADR_WIDTH); // 写接收端地址
<br>
<br> SPI_WR_Reg(WRITE_REG + EN_AA, 0x01); // 频道0自动 ACK应答允许
<br> SPI_WR_Reg(WRITE_REG + EN_RXADDR,0x01); // 允许接收地址只有频道0,如果需要多频道可以参考Page21
<br> SPI_WR_Reg(WRITE_REG + SETUP_RETR, 0x1a); // 设置自动重发时间和次数:500us + 86us, 10 retrans...
<br> SPI_WR_Reg(WRITE_REG + RF_CH, 40); // 设置信道工作为2.4GHZ,收发必须一致
<br> SPI_WR_Reg(WRITE_REG + RX_PW_P0, RX_PLOAD_WIDTH); //设置接收数据长度,本次设置为32字节
<br> SPI_WR_Reg(WRITE_REG + RF_SETUP, 0x0F); //设置发射速率为2MHZ,发射功率为最大值0dB
<br> SPI_WR_Reg(WRITE_REG + CONFIG, 0x0E);
<br> CE = 1;
<br> }
<br>
<br>
<br>
<br>32接受端配置如下
<br>void NRF24L01_RX_Mode(void)
<br>{
<br> NRF24L01_CE=0;
<br> NRF24L01_Write_Buf(WRITE_REG_NRF+RX_ADDR_P0,(u8*)RX_ADDRESS,RX_ADR_WIDTH);//写RX节点地址
<br>
<br> NRF24L01_Write_Reg(WRITE_REG_NRF+EN_AA,0x01); //使能通道0的自动应答
<br> NRF24L01_Write_Reg(WRITE_REG_NRF+EN_RXADDR,0x01);//使能通道0的接收地址
<br> NRF24L01_Write_Reg(WRITE_REG_NRF+RF_CH,40); //设置RF通信频率
<br> NRF24L01_Write_Reg(WRITE_REG_NRF+RX_PW_P0,RX_PLOAD_WIDTH);//选择通道0的有效数据宽度
<br> NRF24L01_Write_Reg(WRITE_REG_NRF+RF_SETUP,0x0f);//设置TX发射参数,0db增益,2Mbps,低噪声增益开启
<br> NRF24L01_Write_Reg(WRITE_REG_NRF+CONFIG, 0x0f);//配置基本工作模式的参数WR_UP,EN_CRC,16BIT_CRC,接收模式
<br> NRF24L01_CE = 1; //CE为高,进入接收模式
<br>} |
|