微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 利用NRF24l01+遇到的问题,真心求教,给点建议也许

利用NRF24l01+遇到的问题,真心求教,给点建议也许

时间:10-02 整理:3721RD 点击:
我利用NRF24L01+实现了两个开发板的通信,一个开发板(板1)烧的是源码,里面用了ucos系统,另一个板子(板2)是我自己写的程序,现在我用板2给板1发送数据成功了,而且板2也能进入发送中断,但是用板1给板2发送就不行,板2一直进入不了接收中断,为什么呢?还有个问题就是我用板2通道0给板1发送数据后,能让板2的通道1接收板1的应答信号吗,据说nrf24l01+里面的ack可以自带数据,那么返回的应答地址能更改吗?真心求教,留下建议也谢谢

参考原子的例程,先什么都不要改,然后先测试成功在进行尝试修改。
如果你用了操作系统的话,可以选择用printf把相关信息打印出来,看是那一步出问题了。

原子的程序我用过了,就是按键选择接收或者发送模式,开启的是通道0,这个没什么问题,请教下如果同时接收两个
节点发来的数据,我该如何判断是哪个节点,手册上说有三个RX_FIFO,但在程序上看到都是一个rx_buf[]

同时接受两个是不行的好像,NRF我只用过一对一的,因为两个地址要匹配,如果必须要接受两个,你需要更改地址

嗯嗯,我试过同时接收两路温度的,没办法只好在温度前加上‘1’和‘2’来识别节点位置,这样虽然可以分开显示两个温度,但觉得这不是最好大哥的办法。地址只要匹配,写在哪个通道其实都一样的我觉得,你有没有试过跳频的算法呢

什么意思,你是一个NRF模块要接收两个NRF的数据吗

嗯嗯,是的,还可能是同时接收的

,,,,,,,,,,,,,,,,,,

同时接收两个,同频道的话会发生撞包。不同频道也可以,只是你主机需要在两个不同频道上来回切换。在A频道上的时候正好B频道来数据不就麻烦了。 我前几天也在玩这个,我是主机轮询从机节点来响应的,道理你应该知道的,就看你接收这种方式不

看你的回复,你的从机检测的是温度数据对吧,采用主从轮询机制,采集个温度数据实时性不会有问题的,非常迅速。

这样也行,用主机轮询就不会发生撞包了,说明手册说的三个RX_FIFO你知道怎么用吗,利用应答信号可以辨别吗你觉得

嗯嗯,对的,按你的说法确实可以,我试过的是判断接收缓冲区的首字符,节点自动发,然后在lcd不同地方显示,你说的轮询可能更好

不知道。一种是物理地址可以区分从机我做过实验。一种就是同一物理地址,但是从协议上区分从机。另外主机的发送应答和从机的接收应答需要关闭。

谢谢哦,我试试看

恩恩,你做实验试一下,我这个组网的项目还没结束呢,有经验一起分享,多交流心得

嗯嗯,好的,组网?你现在做的项目是zigbee的吗?还是什么的

对啊,组网。我就用的NRF24L01

哇咔咔,你做的项目能分享一下吗,我目前 大三,寒假也打算回去学习一下zigbee呢,要做一个基于nrf24l01的智能路灯控制系统,也要学习组网什么的,到时还要继续请教你呢

额,公司项目,虽然水,但是分享出来就不合适了,见谅哈。我们加个Q,签名就是,多交流,一起玩,我有很多不会的。zigbee的话暂且不打算接触。

学长别谦虚咯,我可以理解,有啥技术上的问题我请教你就好啦

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top