樹莓派 GPIO 的 NRF24L01 應用 (ING)


NEW:

NRF24L01

今天終於調試成功,使用1個樹莓派的兩個SPI接口控制了兩個NRF24L01模塊,使得其互相傳數據

具體過程

1.wiringPi 下載 

  SPI接口需要加載

gpio load spi

2.自己編寫nrf24l01.c 控制

#include <nrf2401.h>

    int length;
    char data[32];

void main()
{
       wiringPiSPISetup(0,3000000);    //3Mb/s
    wiringPiSPISetup(1,3000000);
    
    wiringPiSetup();
    pinMode(0,OUTPUT);
    digitalWrite(0,HIGH);
    pinMode(1,OUTPUT);
    digitalWrite(1,LOW);
    delay(1);

    printf("     Command    Data\r\n");

     nrf2401_command(1,W_REGISTER|CONFIG,(1<<EN_CRC)|(1<<PWR_UP)|(1<<PRIM_RX));
    nrf2401_command(0,W_REGISTER|CONFIG,(1<<EN_CRC)|(1<<PWR_UP));

      nrf2401_command(1,W_REGISTER|RX_PW_P0,32);
 
    data[0]=W_TX_PAYLOAD;
    data[1]=0xfe;
    data[2]=0xdc;
    data[3]=0xba;
    data[4]=0x98;      
    wiringPiSPIDataRW(0,data,33);

    
    digitalWrite(1,HIGH);
    delay(1);



//    nrf2401_command(0,W_REGISTER|RX_PW_P0,0xA0);

    digitalWrite(0,HIGH);

//    delay(20);
//     digitalWrite(0,LOW);
//     delay(1000);

    nrf2401_command(0,R_REGISTER|FIFO_STATUS,0);
    nrf2401_command(1,R_REGISTER|FIFO_STATUS,0);

}



 void nrf2401_command(__u8 channel,__u8 command,__u8 command_data)
 {
     data[0]=command;
    if(command_data)
        data[1]=command_data;
    printf("TX_DATA    %8d%8d%8d%8d\r\n",data[0],data[1]);
    if(command_data)
        wiringPiSPIDataRW(channel,data,2);
    else
        wiringPiSPIDataRW(channel,data,1);
    printf("RX_DATA    %8d%8d%8d%8d\r\n",data[0],data[1]);
 }
//  nrf24l01.h


#include <stdio.h> #include <stdint.h> #include <wiringPiSPI.h> #include "wiringPi.h" #include <nRF24L01.h> #include <linux/types.h> void nrf2401_command(__u8 channel,__u8 command,__u8 command_data);

 

實話說,自己一開始死活沒辦法通信,最后無奈找了個范例一點點的抄,然后一點點的刪除,發現,NRF24L01配置上,RX_PW_P0必須要和TW_TX_PAYLOAD的長度一樣才可以接收到數據,感覺好坑啊。

但是最原始的程序有時候感覺沒有發射,原因在哪里不知道。

3.接口完全可以使用樹莓派自帶的SPI總線

CE1 CE0兩個分別控制兩個SPI接口的芯片,然后我用的是GPIO0,GPIO1連接CE

4.現在可以互相通信了。下一步測試傳輸的速率和音樂的傳輸。

 

 

 

BEFORE:

之前我從來沒有想過樹莓派可以直接控制一個IO口的電平高低,一直認為這個是一個電腦,不應該有從CPU引出來的口,真是太天真了。

瞬間覺得樹莓派有搞頭,這比單片機高端多了。

接下來就是看怎么設計程序

 

有朋友說PYTHON比C好用很多,之前有用過C和匯編,一年前在瑞典看了下PYTHON的入門書籍。

先學下怎么用C編,然后嘗試下用PYTHON吧

 

NR​F​2​4​L​0​1​模塊介紹

http://baike.baidu.com/view/3325625.htm

N​R​F​2​4​L​0​1​資料

http://wenku.baidu.com/view/6d813462f5335a8102d220b7.html

樹莓派GPIO

http://www.link888.cn/read-547.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM