最近刚接触NRF24L01,也尝试着做了一些实验,但是在做多对一通信时发现了几个问题。(我做的是A模块的通道0、B模块的通道1发送,C模块接收)
1、NRF24L01里面的0-5通道都是共用一个状态寄存器(这里的地址是0x07),如果多对一通信的话如何来辨别是哪个通道发送过来的数据呢?如果丢了一些数据包,又如何来判断呢?我也想过用他的自动应答位去判断,但是我打开一个通道的自动应答位的话经常接收不到数据,不知道为什么,所以每次都是直接0x3f?
2、在RX的接收中,如果接收到数据的话,我们会通过读 RD_RX_PLOAD 0X61 来把数据提起出来。但是在这里的话我们又是只有读一次,而且不能选择性的读取各个通道的值,所以我做2对1通信的时候读取的数据一会是A发送的,一会是B发送的。
网上我看到很多一对多通信的,但是我没有看到他们把不同的数据放到不同的通道上去发送,也没有看到他们从不同的通道上取出数据来,他们只是用一个接收函数就直接把数据提取出来,而我这样做的话就是只能接收到一个发送方的数据。求大侠们帮帮我排解一下我的疑难,小弟在此谢过了!
|