|
最近被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:}
|
|