极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 42171|回复: 11

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

[复制链接]
发表于 2014-2-7 14:04:29 | 显示全部楼层 |阅读模式
最近被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:}



回复

使用道具 举报

 楼主| 发表于 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
回复 支持 反对

使用道具 举报

发表于 2014-7-21 12:57:35 | 显示全部楼层
NB牛人
回复 支持 反对

使用道具 举报

发表于 2014-7-23 10:12:20 | 显示全部楼层
MARK       一下
回复 支持 反对

使用道具 举报

发表于 2014-7-23 13:30:26 | 显示全部楼层
正在研究nRF24L01,谢谢提供!!
回复 支持 反对

使用道具 举报

发表于 2015-8-1 10:32:13 | 显示全部楼层
老是提示Mirf was not declared in this scope 。怎么破,已经导入了Mirf 库函数
回复 支持 反对

使用道具 举报

发表于 2016-5-21 19:35:19 | 显示全部楼层
oujz123 发表于 2015-8-1 10:32
老是提示Mirf was not declared in this scope 。怎么破,已经导入了Mirf 库函数

mirf.h和mirf.cpp两个都添加了么?
回复 支持 反对

使用道具 举报

发表于 2016-7-31 18:40:00 | 显示全部楼层
楼主请问管脚如何定义,求源码
回复 支持 反对

使用道具 举报

发表于 2016-8-1 09:20:22 | 显示全部楼层
24l01不好用,距离近
回复 支持 反对

使用道具 举报

发表于 2018-5-14 21:23:21 | 显示全部楼层
厉害,用RF24几天调不通,用这个库瞬间完成
回复 支持 反对

使用道具 举报

发表于 2019-7-22 18:57:49 | 显示全部楼层
请问这个的连线是怎样的呢
回复 支持 反对

使用道具 举报

发表于 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:控制端输入,接收端输出引脚
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-26 01:23 , Processed in 0.046797 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表