打印
[应用相关]

高工们,过来探讨下NRF24L01吧!

[复制链接]
1436|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zengan007|  楼主 | 2013-10-28 12:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近刚接触NRF24L01,也尝试着做了一些实验,但是在做多对一通信时发现了几个问题。(我做的是A模块的通道0、B模块的通道1发送,C模块接收)
1、NRF24L01里面的0-5通道都是共用一个状态寄存器(这里的地址是0x07),如果多对一通信的话如何来辨别是哪个通道发送过来的数据呢?如果丢了一些数据包,又如何来判断呢?我也想过用他的自动应答位去判断,但是我打开一个通道的自动应答位的话经常接收不到数据,不知道为什么,所以每次都是直接0x3f?

2、在RX的接收中,如果接收到数据的话,我们会通过读 RD_RX_PLOAD   0X61  来把数据提起出来。但是在这里的话我们又是只有读一次,而且不能选择性的读取各个通道的值,所以我做2对1通信的时候读取的数据一会是A发送的,一会是B发送的。

网上我看到很多一对多通信的,但是我没有看到他们把不同的数据放到不同的通道上去发送,也没有看到他们从不同的通道上取出数据来,他们只是用一个接收函数就直接把数据提取出来,而我这样做的话就是只能接收到一个发送方的数据。求大侠们帮帮我排解一下我的疑难,小弟在此谢过了!
沙发
huzi2099| | 2013-10-28 13:15 | 只看该作者
1.状态寄存器RX_P_NO指明接收的通道;自动应答只能是通道0,其它通道需要你自己编程(状态切换比较费时)
2有一个假设的前提就是接收只在一个通道发生,因为接收只能有一个频道.

使用特权

评论回复
板凳
zengan007|  楼主 | 2013-10-28 13:48 | 只看该作者
huzi2099 发表于 2013-10-28 13:15
1.状态寄存器RX_P_NO指明接收的通道;自动应答只能是通道0,其它通道需要你自己编程(状态切换比较费时)
2有一 ...

第一句话有点没有懂。我看到他们做多通道通信的都是把所有通道的自动应答都打开的。

频道?一个频道可以有几个通道通信啊!

使用特权

评论回复
地板
huzi2099| | 2013-10-28 15:18 | 只看该作者
status寄存器的3:1位,没试过待研究.
一个模块收发只能在一个频段上.

使用特权

评论回复
5
zengan007|  楼主 | 2013-10-29 09:57 | 只看该作者
huzi2099 发表于 2013-10-28 15:18
status寄存器的3:1位,没试过待研究.
一个模块收发只能在一个频段上.

我现在做的是2发一收,在同一个频段上,目前都能够接收到两个发送端的数据,但是发送端提示“主机没有接收到应答信号,发送次数超过限定值”。我已经把重发间隔调的很大,发送次数也调的很大,但就是没有反应啊!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

33

主题

76

帖子

0

粉丝