发 帖  
[问答]

NRF24L01如何设置为通道1进行通讯

1501 nRF24L01


[C] 纯文本查看 复制代码
void NRF24L01_RX_Mode(void){NRF24L01_CE=0;   NRF24L01_Write_Buf(NRF_WRITE_REG+RX_ADDR_P1,(u8*)RX0_ADDRESS,RX_ADR_WIDTH);//写RX节点地址   NRF24L01_Write_Reg(NRF_WRITE_REG+EN_AA,0x02);    //使能通道1的自动应答      NRF24L01_Write_Reg(NRF_WRITE_REG+EN_RXADDR,0x02);//使能通道1的接收地址     NRF24L01_Write_Reg(NRF_WRITE_REG+RF_CH,40);   //设置RF通信频率   NRF24L01_Write_Reg(NRF_WRITE_REG+RX_PW_P1,RX_PLOAD_WIDTH);//选择通道1的有效数据宽度      NRF24L01_Write_Reg(NRF_WRITE_REG+RF_SETUP,0x0f);//设置TX发射参数,0db增益,2Mbps,低噪声增益开启     NRF24L01_Write_Reg(NRF_WRITE_REG+CONFIG, 0x0f);//配置基本工作模式的参数;PWR_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(){ NRF24L01_CE=0;     NRF24L01_Write_Buf(NRF_WRITE_REG+TX_ADDR,(u8*)TX0_ADDRESS,TX_ADR_WIDTH);//写TX节点地址   NRF24L01_Write_Buf(NRF_WRITE_REG+RX_ADDR_P0,(u8*)RX0_ADDRESS,RX_ADR_WIDTH); //设置TX节点地址,主要为了使能ACK   NRF24L01_Write_Reg(NRF_WRITE_REG+EN_AA,0x02);     //使能通道1的自动应答      NRF24L01_Write_Reg(NRF_WRITE_REG+EN_RXADDR,0x02); //使能通道1的接收地址    NRF24L01_Write_Reg(NRF_WRITE_REG+SETUP_RETR,0x1a);//设置自动重发间隔时间:500us + 86us;最大自动重发次数:10次  NRF24L01_Write_Reg(NRF_WRITE_REG+RF_CH,40);       //设置RF通道为40  NRF24L01_Write_Reg(NRF_WRITE_REG+RF_SETUP,0x0f);  //设置TX发射参数,0db增益,2Mbps,低噪声增益开启     NRF24L01_Write_Reg(NRF_WRITE_REG+CONFIG,0x0e);    //配置基本工作模式的参数;PWR_UP,EN_CRC,16BIT_CRC,接收模式,开启所有中断NRF24L01_CE=1;//CE为高,10us后启动发送}

实在搞不懂究竟出了什么问题,请各位指点指点。

谢谢!



                  
0
2020-6-8 04:35:40   评论 分享淘帖 邀请回答 举报
4个回答
2020-6-8 08:45:25 评论

举报

2020-6-8 08:52:33 评论

举报

2020-6-8 09:08:28 评论

举报

2020-6-8 09:17:48 评论

举报

只有小组成员才能发言,加入小组>>

459个成员聚集在这个小组

加入小组

创建小组步骤

快速回复 返回顶部 返回列表
关注微信公众号

电子发烧友网

电子发烧友论坛

社区合作
刘勇
联系电话:15994832713
邮箱地址:liuyong@huaqiu.com
社区管理
elecfans短短
微信:elecfans_666
邮箱:users@huaqiu.com
关闭

站长推荐 上一条 /7 下一条

快速回复 返回顶部 返回列表