geraintmoore 发表于 2014-2-7 14:04:29

推荐一个nRF24L01的Library【Arduino, Energia 通用,测试了基本收发】

最近被nRF24L01折腾的挺不爽的,一个很偶然的机会,破罐子破摔,将原本给Energia的Enrf24库搬到了arduino的文件夹里。结果example(Enrf24_RXdemo)编译顺利,下载后运行正常。算是撞上了大运吧。不敢独享,发到坛子里。

Enrf24 (https://github.com/spirilis/Enrf24) 本是在 43OH(msp430论坛)上找到的。最开始接触这个库,用的是TI 的 CCS5.3做开发,C语言版本的库叫做msprf24(https://github.com/spirilis/msprf24)。因为设置其对msp430系列支持比较好,提供了中断,以及USCI,USI两种模块下的SPI功能支持,在msp430系列中用起来很方便。

后来因为对USB to RF 比较感兴趣,入手了China Copy 的 SparkFun Pro Micro(atmega32u4, Sparkun修改后的bootloader)。一直想用pro micro + RF 代替 ft232(pl2303)+MCU+RF的模式,又懒得去学习AVR的C语言编程。于是有了下面的尝试

尝试了三个库,想让arduino(m32u4)与 Energia(msp430g2553)能够建立无线通讯:
Mirf (来自arduino.cc的推荐)
问题是查看了源文件,没有发现设置data rate, CRC, TX_Power, channel, Auto_ACK的方法。可能也是因为Mirf的简单,被Arduino.cc作为首选的库。
因为上面这些设置直接影响了nrf24l01的通讯(与energia),排列组合一下,可能的设置组合太多了,很难调试通过。

RF24(同样来自arduino.cc,但在Mirf的下面,字体小了不少)
查看了源文件,发现其编写风格明显与Mirf不同,添加了很详尽的注释,而且在nrf24l01的管道(Pipe)方面有所侧重。查看作者的git(https://github.com/maniacbug/)发现,他还有一个用于nrf24l01组网的小项目。想必日后用nrf24L01做传感器网络时会用得着。把源码全部看一遍,然后再消化,一定很痛苦……

所以就尝试了一下把Enrf24硬搬到arduino里面。
pro micro 加载RXdemo, Energia 加载TXdemo. 修改RXdemo中相应的针脚设置(ce csn irq)以及LED pin (pro micro 板载一个, pin17).……编译……下载……然后两块板子就开始一闪一闪的对话了。如果按住energia上面的“reset”,让energia处于复位状态,pro micro就停止了响应。松开,通讯恢复。

先交待这么多,如果后面使用中有什么问题,再和大家分享。{:soso_e160:}



geraintmoore 发表于 2014-2-7 14:09:26

本帖最后由 geraintmoore 于 2014-2-7 14:10 编辑

链接汇总:
Enrf24 和 msprf24的作者git:
https://github.com/spirilis
RF24和RF24Network的作者git:
https://github.com/maniacbug
Mirf就不写了,arduino.cc上面直接下载。

SparkFun pro micro
https://www.sparkfun.com/products/retired/10998
支持文件(bootloader,pin_define, windows driver)的git:
https://github.com/sparkfun/SF32u4_boards

lfp136 发表于 2014-7-21 12:57:35

:):):):) NB牛人

wxws 发表于 2014-7-23 10:12:20

MARK       一下

100abc 发表于 2014-7-23 13:30:26

正在研究nRF24L01,谢谢提供!!

oujz123 发表于 2015-8-1 10:32:13

老是提示Mirf was not declared in this scope 。怎么破,已经导入了Mirf 库函数

everever 发表于 2016-5-21 19:35:19

oujz123 发表于 2015-8-1 10:32 static/image/common/back.gif
老是提示Mirf was not declared in this scope 。怎么破,已经导入了Mirf 库函数

mirf.h和mirf.cpp两个都添加了么?

ljan69 发表于 2016-7-31 18:40:00

楼主请问管脚如何定义,求源码

lm4766 发表于 2016-8-1 09:20:22

24l01不好用,距离近

xou130 发表于 2018-5-14 21:23:21

厉害,用RF24几天调不通,用这个库瞬间完成

小白菜嗯呐 发表于 2019-7-22 18:57:49

请问这个的连线是怎样的呢

eagler8 发表于 2019-9-19 12:36:52

小白菜嗯呐 发表于 2019-7-22 18:57
请问这个的连线是怎样的呢

Arduino uno    ---    nRF24L01
3.3V               ---    VCC:模块供电引脚
GND               ---    GND:模块接地引脚
D7                  ---    CSN:接收端选择引脚
D8                  ---    CE:发射/接受状态选择引脚
D11                  ---    MOSI :控制端输出,接收端输入引脚
D13                  ---    SCK:时钟信号
D12                  ---    MISO:控制端输入,接收端输出引脚
页: [1]
查看完整版本: 推荐一个nRF24L01的Library【Arduino, Energia 通用,测试了基本收发】