原理细节这个文章写得很详细, 讲解NRF24L01P无线收发模块
这里说些大白话,全是满满的干货。说来惭愧,这是我花了整整一个星期研究出来的结果。
工作原理:
- 无线通许采用2.4GHz载波通讯,收发的数据均是再载波上传输的,同一时刻只能发送或者接受。
- 由于同一个时刻只能一方发送,所以需要规定时序,由谁发送?什么时候发送?所以需要时间同步信号(此处说的是方便理解,其他地方并未提到同步信号这一说)。
- 为了确定谁发谁收,所以NRF24L01P需要设置发送模式(PTX)和接收模式(PRX),PRX接收一方启动后默认处于接收模式,一直等待数据接受。PTX发送一方启动后一直处于发送模式,等待发送数据写入发送缓冲区发送。
注:
经过测试,不管是PTX还是PRX,在上电初始化芯片过程中,CE一直保持低电平,初始化后CE拉高即可,不用频繁设置,频繁设置会降低收发速度和打乱收到时序
CE为芯片使能脚,CE脚可理解为收发控制,如果CE为低,则不会收发数据。也作为待机模式能状态的切换。如果不考虑低功耗,初始化后CE一直保持高电平即可。
PTX主机发送数据:
直接写入缓冲区无线芯片就可以自动发送。(这里应该很容易理解)
注:
PTX有三个发送缓冲区,可以写三次。NRF24L01P可以设置重发次数和重发间隔时间参数,如果STATUS寄存器中MAX_RT为1,必须清除后才能恢复通讯,否则当机中。。。
如果主机先上电,或者从机复位过程了,此时发送就会导致MAX_RT。