可以,多发一收,多收一发,多发多收都可以。
无线信号不是定向发送的,只要发送到空中,在范围内的天线都会捕捉到,之后nrf24l01判断地址和自己的相同就会存到FIFO里送给上位机,地址和设定的不同就直接丢弃。
nrf24l01同时可以监听6个地址,但不同模块可以共用同一个地址,所以同时监听的模块数是没有限制的。至于发送地址,由于可以随时修改,所以相当于没有限制。
似乎没办法指定接收所有地址的包,不过所有模块发送和接收地址都设为同一个值,然后在数据包里包含自己定义的地址就行了,无非是上位机负担重一点,发现包不是给自己的扔掉就好了。
多发多收的情况通讯协议需要仔细设计。比如说,如果同一个地址有多个接收者,则最好禁止自动ack(这时ack只表示有一个接受者收到了包,而不是全部收到了包,没有意义)。
又比如,很多模块都发送的话,互相如何避免碰撞需要仔细考虑。
|