树莓派之RF24L01+

给树莓派扩展RF24L01+是我想了蛮久的事情,今天终于实现了,总结、记录、分享。
本文将讨论如下问题:
1.wiringPi的基本使用
1.1安装于更新
1.2使用wiringPi的程序编译
1.3使用wiringPi的程序执行
1.4wiringPi中SPI相关函数wiringPiSPIDataRW的注意事项
2.RF24L01+模块与RPi连接的接口问题
2.1MOSI和MISO
2.2CSN和CE
2.3我使用的管脚连接
1.wiringPi的基本使用
1.1安装于更新
    下载与安装请参考wiringPi官方网站
    第一个简单的例子Blink
1.2使用wiringPi的程序编译
    在编译程序时需要使用如下语句:
    gcc -o rfpi -Wall -I/usr/local/include -L/usr/local/lib main.c nRF_24L01.c nRF_spi.c -lwiringPi
1.3使用wiringPi的程序执行
     before run your app,you should load the spi module into the kernel by command:

gpio load spi
    且app需要使用root权限,所以,
    sudo ./rfpi
1.4wiringPi中SPI相关函数wiringPiSPIDataRW的注意事项
    该函数的说明如下:
/*
* wiringPiSPIDataRW:
 *    Write and Read a block of data over the SPI bus.
 *    Note the data ia being read into the transmit buffer, so will
 *    overwrite it!
 *    This is also a full-duplex operation.
*********************************************************************************
*/
    所以,对该函数的调用应该如下:
    wiringPiSPIDataRW(0,&aByte,1);
    ret = aByte;                                   //调用该函数后从SPI bus上读取到的数据已经存放在aByte中。
2.RF24L01+模块与RPi连接的接口问题
2.1MOSI和MISO
    SPI接口与UART口的描述不同,UART接口中TXD和RXD常常是针对该器件而言,所以两个器件使用UART连接时,A器件与B器件的TX和RX应该交叉连接;而SPI接口的描述是针对整个接口而言的 ,MOSI表示 master output slave input,在整个接口中一方为master,另一方为slave,所以两个器件的接口是直连的。
2.2CSN和CE
    nRF24L01+有一个CSN还有一个CE。CSN是SPI Chip Select 应该接RPi的CE0或CE1,而CE是Chip Enable Activates RX or TX mode,该脚应该由另外一个独立的IO口来控制。
2.3我使用的管脚连接
nRF24L01+ pin name RPi header pin num wiringPi pin num
CE 12 1
CSN 24 10
SCLK 23 14
MOSI 19 12
MISO 21 13
IRQ 13 2
VCC 17
GND 25
RPi和wiringPi的管脚详细信息参考这里
github上还有24L01+的相关库
https://github.com/kehribar/nrf24L01_plus
http://maniacbug.github.io/RF24/
分享到: 更多
版权申明:

本站保留所有原创文章的版权,本站地址:奔跑的博客[http://www.elecbench.com]

原创文章转载时请注明出处,并添加文章所在页面的链接:http://www.elecbench.com/%e6%a0%91%e8%8e%93%e6%b4%be%e4%b9%8brf24l01/

本站所有 2010年3月4日 以后发表、未标明为“转载”的文章均是本站原创。

发表评论?

3 条评论。

  1. 你好,我想问一下,我要写一个无线模块驱动,实现51单片机和树莓派通信,目前有一块树莓派,一块51单片机开发板,两个NRf24l01无线模块,51单片模拟SPI协议驱动写好了…但是树莓派的不会写,需要怎么写呢?

  2. 你好,请问你有树莓派的spi的例子吗?

发表评论


(设置自己的个性头像)

*

申请属于你的免费顶级域名