天线|RF射频
直播中

李兆峰

7年用户 225经验值
私信 关注
[问答]

24L01怎么设置距离最远?

请教各位大神,,原子哥的24L01模块配套的程序里的接收模式和发射模式要怎么设置才能使它传输和接收的距离最远啊?



//下面两个函数怎么改

//该函数初始化NRF24L01到RX模式

//设置RX地址,写RX数据宽度,选择RF频道,波特率和LNA HCURR

//当CE变高后,即进入RX模式,并可以接收数据了                   

void NRF24L01_RX_Mode(void)

{

        NRF24L01_CE=0;          

          NRF24L01_Write_Buf(WRITE_REG_NRF+RX_ADDR_P0,(u8*)RX_ADDRESS,RX_ADR_WIDTH);//写RX节点地址

          

          NRF24L01_Write_Reg(WRITE_REG_NRF+EN_AA,0x01);    //使能通道0的自动应答   

          NRF24L01_Write_Reg(WRITE_REG_NRF+EN_RXADDR,0x01);//使能通道0的接收地址          

          NRF24L01_Write_Reg(WRITE_REG_NRF+RF_CH,40);             //设置RF通信频率                  

          NRF24L01_Write_Reg(WRITE_REG_NRF+RX_PW_P0,RX_PLOAD_WIDTH);//选择通道0的有效数据宽度            

          NRF24L01_Write_Reg(WRITE_REG_NRF+RF_SETUP,0x0f);//设置TX发射参数,0db增益,2Mbps,低噪声增益开启   

          NRF24L01_Write_Reg(WRITE_REG_NRF+CONFIG, 0x0f);//配置基本工作模式的参数WR_UP,EN_CRC,16BIT_CRC,接收模式

          NRF24L01_CE = 1; //CE为高,进入接收模式

}                                                

//该函数初始化NRF24L01到TX模式

//设置TX地址,写TX数据宽度,设置RX自动应答的地址,填充TX发送数据,选择RF频道,波特率和LNA HCURR

//PWR_UP,CRC使能

//当CE变高后,即进入RX模式,并可以接收数据了                   

//CE为高大于10us,则启动发送.        

void NRF24L01_TX_Mode(void)

{                                                                                                               

        NRF24L01_CE=0;           

          NRF24L01_Write_Buf(WRITE_REG_NRF+TX_ADDR,(u8*)TX_ADDRESS,TX_ADR_WIDTH);//写TX节点地址

          NRF24L01_Write_Buf(WRITE_REG_NRF+RX_ADDR_P0,(u8*)RX_ADDRESS,RX_ADR_WIDTH); //设置TX节点地址,主要为了使能ACK          




          NRF24L01_Write_Reg(WRITE_REG_NRF+EN_AA,0x01);     //使能通道0的自动应答   

          NRF24L01_Write_Reg(WRITE_REG_NRF+EN_RXADDR,0x01); //使能通道0的接收地址  

          NRF24L01_Write_Reg(WRITE_REG_NRF+SETUP_RETR,0x1a);//设置自动重发间隔时间:500us + 86us;最大自动重发次数:10次

          NRF24L01_Write_Reg(WRITE_REG_NRF+RF_CH,40);       //设置RF通道为40

          NRF24L01_Write_Reg(WRITE_REG_NRF+RF_SETUP,0x0f);  //设置TX发射参数,0db增益,2Mbps,低噪声增益开启   

          NRF24L01_Write_Reg(WRITE_REG_NRF+CONFIG,0x0e);    //配置基本工作模式的参数WR_UP,EN_CRC,16BIT_CRC,接收模式,开启所有中断

        NRF24L01_CE=1;//CE为高,10us后启动发送

}                  

回帖(5)

张嘉

2020-5-26 08:12:25

我们默认设置的就是最远了.

最大功率.

NRF24L01_Write_Reg(WRITE_REG_NRF+RF_SETUP,0x0f);//设置TX发射参数,0db增益,2Mbps,低噪声增益开启
举报

范琴英

2020-5-26 08:21:29

哦,谢谢原子哥
举报

范志坚

2020-5-26 08:38:20
降低通信速率可以提高接收灵敏度.



选用干扰小的频率点,或者使用跳频,可以降低同频干扰.



代码以外,选个<合适>的天线收获更大.
举报

陈鑫

2020-5-26 08:54:58

谢谢
举报

更多回帖

发帖
×
20
完善资料,
赚取积分