关于NRF24L01模块的初始化配置代码,寄存器代码,底层驱动程序,网上一搜一大堆。这里主要记录下我自己使用过程中的收获。
第一次使用这个模块是在学校的时候,那时候用stc51做处理器,模拟SPI通信,实现点对点的双向通信,然而通信的内容仅有1bit。当时想发多个数据,怎么也调试不成功。现在看来是因为对数组,对指针理解的不够深入。不过收获就是学会了SPI总线,知道了一个芯片一个模块该如何去使用。
再次使用该模块是工作中,要求显然高了,对我来说。PIC单片机硬件SPI,虽然以前用过这个模块,但是调试还是用了近两周,完成了点对点通信,通信数据长度是最大的32bit(其实可以无限长,只是那部分代码我没有研究,产品也用不上那么多)。接下来完成了多机通信,就是1对多的通信。以上都是个人牢骚。
这个文档要记录的就是多机通信时的地址分配情况(因为这个问题让我晕了好久):
1、接收端(主机):
a、配置多通道接收,多通道自动应答;
b、地址分配:本机地址:TX_ADDR[5]
接收CH0地址:RX_ADDR0[5](和本机地址相同)
接收CH1地址:RX_ADDR1[5](首字节不同,注意在数组里面表示,是第一个元素不同,其他相同,说明 书上说地址的最低字节不同,但是他是低字节在前,所以数组中首个元素 不同。CH2/3/4/5均按这个标志分配地址)
2、发送端(从机):
a、本机地址:与接收端的某个接收通道的地址一致。
b、接收地址:主机的“本机地址”。
3、关于两个模式的切换:切换的时间间隔为50MS比较稳定,这个时间是在PIC18F65K90单片机测试的时间(多通道模式下)。
总结:经过这次的使用,感觉这个模块的使用并不复杂,网上的资料也都是关于配置,关于该怎么调试的资料,调试通过后具体的应用的资料确实很少。这里把自己的收获写下来,以后忘了还能再看看,不过初次使用这个模块的,看这个文章应该帮助不大。MARK