久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 3136|回復(fù): 10
打印 上一主題 下一主題
收起左側(cè)

NRF24L01+無(wú)線調(diào)試

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:52740 發(fā)表于 2014-10-12 16:58 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
小白我前幾天做NRF24L01+模塊的無(wú)線調(diào)試,想先調(diào)通,就修改別人現(xiàn)有的程序,但是不管怎樣調(diào)都調(diào)不通,也不知道到底是收發(fā)方哪邊的問(wèn)題,以為模塊燒壞啦,就重新在某寶上買(mǎi)了兩個(gè),依舊還是調(diào)不通。沒(méi)辦法,就到此求大神用這個(gè)程序試一下,我想到底是程序的問(wèn)題還是模塊又壞了的原因,小白不甚感激!!!
現(xiàn)程序如下:
【發(fā)射方】
#include <reg52.h>
#include <intrins.h>

typedef unsigned char uchar;
typedef unsigned char uint;
//****************************************IOカヒソレカィメ・**************************************
//****************************************NRF24L01カヒソレカィメ・**************************************
sbit CE=P2^2;
sbit CSN =P2^3;
sbit SCK =P2^4;
sbit MOSI =P2^5;
sbit MISO =P2^6;
sbit IRQ =P2^7;
//************************************ーエシ・**************************************************
sbit        KEY1=P1^4;
//************************************キ菘・**************************************************
sbit         LED=P1^6;
//*********************************************NRF24L01*************************************
#define TX_ADR_WIDTH    5           // 5 uints TX address width
#define RX_ADR_WIDTH    5           // 5 uints RX address width
#define TX_PLOAD_WIDTH  20          // 20 uints TX payload
#define RX_PLOAD_WIDTH  20          // 20 uints TX payload
uint const TX_ADDRESS[TX_ADR_WIDTH]= {0x34,0x43,0x10,0x10,0x01};        //アセオリオリヨキ
uint const RX_ADDRESS[RX_ADR_WIDTH]= {0x34,0x43,0x10,0x10,0x01};        //スモハユオリヨキ
//***************************************NRF24L01シトエ貳クチ・******************************************************
#define READ_REG        0x00          // カチシトエ貳クチ・
#define WRITE_REG       0x20         // ミエシトエ貳クチ・
#define RD_RX_PLOAD     0x61          // カチネ。スモハユハセンヨクチ・
#define WR_TX_PLOAD     0xA0          // ミエエキ「ハセンヨクチ・
#define FLUSH_TX        0xE1         // ウ袞エキ「ヒヘ FIFOヨクチ・
#define FLUSH_RX        0xE2          // ウ袞エスモハユ FIFOヨクチ・
#define REUSE_TX_PL     0xE3          // カィメ袒リクエラーヤリハセンヨクチ・
#define NOP             0xFF          // ア」チ・
//*************************************SPI(nRF24L01)シトエ貳リヨキ****************************************************
#define CONFIG          0x00  // ナ葷テハユキ「ラエフャ」ャCRCミ」ム鯑」ハスメヤシーハユキ「ラエフャマ・ヲキスハス
#define EN_AA           0x01  // ラヤカッモヲエヲトワノ靹テ
#define EN_RXADDR       0x02  // ソノモテミナオタノ靹テ
#define SETUP_AW        0x03  // ハユキ「オリヨキソ昮ネノ靹テ
#define SETUP_RETR      0x04  // ラヤカッヨリキ「ケヲトワノ靹テ
#define RF_CH           0x05  // ケ、ラオツハノ靹テ
#define RF_SETUP        0x06  // キ「ノ萢ルツハ。「ケヲコトケヲトワノ靹テ
#define STATUS          0x07  // ラエフャシトエ貳・
#define OBSERVE_TX      0x08  // キ「ヒヘシ犂篁ヲトワ
#define CD              0x09  // オリヨキシ・・         
#define RX_ADDR_P0      0x0A  // ニオオタ0スモハユハセンオリヨキ
#define RX_ADDR_P1      0x0B  // ニオオタ1スモハユハセンオリヨキ
#define RX_ADDR_P2      0x0C  // ニオオタ2スモハユハセンオリヨキ
#define RX_ADDR_P3      0x0D  // ニオオタ3スモハユハセンオリヨキ
#define RX_ADDR_P4      0x0E  // ニオオタ4スモハユハセンオリヨキ
#define RX_ADDR_P5      0x0F  // ニオオタ5スモハユハセンオリヨキ
#define TX_ADDR         0x10  // キ「ヒヘオリヨキシトエ貳・
#define RX_PW_P0        0x11  // スモハユニオオタ0スモハユハセンウ、カネ
#define RX_PW_P1        0x12  // スモハユニオオタ0スモハユハセンウ、カネ
#define RX_PW_P2        0x13  // スモハユニオオタ0スモハユハセンウ、カネ
#define RX_PW_P3        0x14  // スモハユニオオタ0スモハユハセンウ、カネ
#define RX_PW_P4        0x15  // スモハユニオオタ0スモハユハセンウ、カネ
#define RX_PW_P5        0x16  // スモハユニオオタ0スモハユハセンウ、カネ
#define FIFO_STATUS     0x17  // FIFOユサネ・サウエフャシトエ貳靹テ
//**************************************************************************************
void Delay(unsigned int s);
void inerDelay_us(unsigned char n);
void init_NRF24L01(void);
uint SPI_RW(uint uchar);
uchar SPI_Read(uchar reg);
void SetRX_Mode(void);
uint SPI_RW_Reg(uchar reg, uchar value);
uint SPI_Read_Buf(uchar reg, uchar *pBuf, uchar uchars);
uint SPI_Write_Buf(uchar reg, uchar *pBuf, uchar uchars);
unsigned char nRF24L01_RxPacket(unsigned char* rx_buf);
void nRF24L01_TxPacket(unsigned char * tx_buf);
//*****************************************ウ、ムモハア*****************************************
void Delay(unsigned int s)
{
        unsigned int i;
        for(i=0; i<s; i++);
        for(i=0; i<s; i++);
}
//******************************************************************************************
uint         bdata sta;   //ラエフャア・セ
sbit        RX_DR        =sta^6;
sbit        TX_DS        =sta^5;
sbit        MAX_RT        =sta^4;
/******************************************************************************************
/*ムモハアコッハ
/******************************************************************************************/
void inerDelay_us(unsigned char n)
{
        for(;n>0;n--)
                _nop_();
}
//****************************************************************************************
/*NRF24L01ウシサッ
//***************************************************************************************/
void init_NRF24L01(void)
{
    inerDelay_us(100);
        CE=0;    // chip enable
        CSN=1;   // Spi disable
        SCK=0;   // Spi clock line init high
        SPI_Write_Buf(WRITE_REG + TX_ADDR, TX_ADDRESS, TX_ADR_WIDTH);    // ミエアセオリオリヨキ       
        SPI_Write_Buf(WRITE_REG + RX_ADDR_P0, RX_ADDRESS, RX_ADR_WIDTH); // ミエスモハユカヒオリヨキ
        SPI_RW_Reg(WRITE_REG + EN_AA, 0x01);      //  ニオオタ0ラヤカッ        ACKモヲエハミ・
        SPI_RW_Reg(WRITE_REG + EN_RXADDR, 0x01);  //  ヤハミ晳モハユオリヨキヨサモミニオオタ0」ャネ郢鋗靨ェカ猗オオタソノメヤイホソシPage21  
        SPI_RW_Reg(WRITE_REG + RF_CH, 0);        //   ノ靹テミナオタケ、ラェ2.4GHZ」ャハユキ「アリミ・サヨツ
        SPI_RW_Reg(WRITE_REG + RX_PW_P0, RX_PLOAD_WIDTH); //ノ靹テスモハユハセンウ、カネ」ャアセエホノ靹テホェ20ラヨスレ
        SPI_RW_Reg(WRITE_REG + RF_SETUP, 0x07);                   //ノ靹テキ「ノ萢ルツハホェ1MHZ」ャキ「ノ荵ヲツハホェラ鋗オ0dB
}
/****************************************************************************************************
/*コッハ」コuint SPI_RW(uint uchar)
/*ケヲトワ」コNRF24L01オトSPIミエハアミ・
/****************************************************************************************************/
uint SPI_RW(uint uchar)
{
        uint bit_ctr;
           for(bit_ctr=0;bit_ctr<8;bit_ctr++) // output 8-bit
           {
                MOSI = (uchar & 0x80);         // output 'uchar', MSB to MOSI
                uchar = (uchar << 1);           // shift next bit into MSB..
                SCK = 1;                      // Set SCK high..
                uchar |= MISO;                         // capture current MISO bit
                SCK = 0;                              // ..then set SCK low again
           }
    return(uchar);                             // return read uchar
}
/****************************************************************************************************
/*コッハ」コuchar SPI_Read(uchar reg)
/*ケヲトワ」コNRF24L01オトSPIハアミ・
/****************************************************************************************************/
uchar SPI_Read(uchar reg)
{
        uchar reg_val;
       
        CSN = 0;                // CSN low, initialize SPI communication...
        SPI_RW(reg);            // Select register to read from..
        reg_val = SPI_RW(0);    // ..then read registervalue
        CSN = 1;                // CSN high, terminate SPI communication
       
        return(reg_val);        // return register value
}
/****************************************************************************************************/
/*ケヲトワ」コNRF24L01カチミエシトエ貳ッハ
/****************************************************************************************************/
uint SPI_RW_Reg(uchar reg, uchar value)
{
        uint status;
       
        CSN = 0;                   // CSN low, init SPI transaction
        status = SPI_RW(reg);      // select register
        SPI_RW(value);             // ..and write value to it..
        CSN = 1;                   // CSN high again
       
        return(status);            // return nRF24L01 status uchar
}
/****************************************************************************************************/
/*コッハ」コuint SPI_Read_Buf(uchar reg, uchar *pBuf, uchar uchars)
/*ケヲトワ: モテモレカチハセン」ャreg」コホェシトエ貳リヨキ」ャpBuf」コホェエカチウセンオリヨキ」ャuchars」コカチウセンオトク
/****************************************************************************************************/
uint SPI_Read_Buf(uchar reg, uchar *pBuf, uchar uchars)
{
        uint status,uchar_ctr;
       
        CSN = 0;                                    // Set CSN low, init SPI tranaction
        status = SPI_RW(reg);                       // Select register to write to and read status uchar
       
        for(uchar_ctr=0;uchar_ctr<uchars;uchar_ctr++)
                pBuf[uchar_ctr] = SPI_RW(0);    //
       
        CSN = 1;                           
       
        return(status);                    // return nRF24L01 status uchar
}
/*********************************************************************************************************
/*コッハ」コuint SPI_Write_Buf(uchar reg, uchar *pBuf, uchar uchars)
/*ケヲトワ: モテモレミエハセン」コホェシトエ貳リヨキ」ャpBuf」コホェエミエネ・センオリヨキ」ャuchars」コミエネ・センオトク
/*********************************************************************************************************/
uint SPI_Write_Buf(uchar reg, uchar *pBuf, uchar uchars)
{
        uint status,uchar_ctr;
       
        CSN = 0;            //SPIハケトワ      
        status = SPI_RW(reg);   
        for(uchar_ctr=0; uchar_ctr<uchars; uchar_ctr++) //
                SPI_RW(*pBuf++);
        CSN = 1;           //ケリアユSPI
        return(status);    //
}
/****************************************************************************************************/
/*コッハ」コvoid SetRX_Mode(void)
/*ケヲトワ」コハセンスモハユナ葷テ
/****************************************************************************************************/
void SetRX_Mode(void)
{
        CE=0;
        SPI_RW_Reg(WRITE_REG + CONFIG, 0x0f);                   // IRQハユキ「ヘ・ノヨミカママ・ヲ」ャ16ホサCRC        」ャヨモハユ
        CE = 1;
        inerDelay_us(130);
}
/******************************************************************************************************/
/*コッハ」コunsigned char nRF24L01_RxPacket(unsigned char* rx_buf)
/*ケヲトワ」コハセンカチネ。コナネ輦x_bufスモハユサコウ衂ミ
/******************************************************************************************************/
unsigned char nRF24L01_RxPacket(unsigned char* rx_buf)
{
    unsigned char revale=0;
        sta=SPI_Read(STATUS);        // カチネ。ラエフャシトエ貳菎エナミカマハセンスモハユラエソ・
        if(RX_DR)                                // ナミカマハヌキモハユオスハセン
        {
            CE = 0;                         //SPIハケトワ
                SPI_Read_Buf(RD_RX_PLOAD,rx_buf,TX_PLOAD_WIDTH);// read receive payload from RX_FIFO buffer
                revale =1;                        //カチネ。ハセンヘ・ノア・セ
        }
        SPI_RW_Reg(WRITE_REG+STATUS,sta);   //スモハユオスハセンコX_DR,TX_DS,MAX_PTカシヨテク゚ホェ1」ャヘィケミエ1タエヌ蟲(chóng)ヨミカマア・セ
        return revale;
}
/***********************************************************************************************************
/*コッハ」コvoid nRF24L01_TxPacket(unsigned char * tx_buf)
/*ケヲトワ」コキ「ヒヘ tx_bufヨミハセン
/**********************************************************************************************************/
void nRF24L01_TxPacket(unsigned char * tx_buf)
{
        CE=0;                        //StandBy Iト」ハス       
        SPI_Write_Buf(WRITE_REG + RX_ADDR_P0, TX_ADDRESS, TX_ADR_WIDTH); // ラーヤリスモハユカヒオリヨキ
        SPI_Write_Buf(WR_TX_PLOAD, tx_buf, TX_PLOAD_WIDTH);                          // ラーヤリハセン       
        SPI_RW_Reg(WRITE_REG + CONFIG, 0x0e);                    // IRQハユキ「ヘ・ノヨミカママ・ヲ」ャ16ホサCRC」ャヨ「ヒヘ
        CE=1;                 //ヨテク゚CE」ャシ、キ「ハセンキ「ヒヘ
        inerDelay_us(10);
}
//************************************ヨッハ************************************************************
void main(void)
{
        unsigned char tf =0;
        unsigned char TxBuf[20]={0};         //
        unsigned char RxBuf[20]={0};       
    init_NRF24L01() ;
        TxBuf[1] = 1 ;
        TxBuf[2] = 1 ;
        nRF24L01_TxPacket(TxBuf);        // Transmit Tx buffer data
        Delay(6000);
        while(1)
        {
            if(KEY1 ==0 )
                  {
                    TxBuf[1] = 1 ;
                    tf = 1 ; LED=0;
            }
           if (tf==1)
       {       
                        nRF24L01_TxPacket(TxBuf);        // Transmit Tx buffer data
                        TxBuf[1] = 0x00;
                        TxBuf[2] = 0x00;
                        tf=0;
                        Delay(1000);LED=1;
           }
           }
           }
【接收方】

#include <reg52.h>
#include <intrins.h>

typedef unsigned char uchar;
typedef unsigned char uint;
//****************************************IOカヒソレカィメ・**************************************
//****************************************NRF24L01カヒソレカィメ・**************************************
sbit CE=P0^1;
sbit CSN =P0^0;
sbit SCK =P0^3;
sbit MOSI =P0^2;
sbit MISO =P0^5;
sbit IRQ =P0^4;
//************************************ーエシ・**************************************************
sbit        KEY1=P3^4;
//************************************キ菘・**************************************************
sbit         LED=P3^2;
//*********************************************NRF24L01*************************************
#define TX_ADR_WIDTH    5           // 5 uints TX address width
#define RX_ADR_WIDTH    5           // 5 uints RX address width
#define TX_PLOAD_WIDTH  20          // 20 uints TX payload
#define RX_PLOAD_WIDTH  20          // 20 uints TX payload
uint const TX_ADDRESS[TX_ADR_WIDTH]= {0x34,0x43,0x10,0x10,0x01};        //アセオリオリヨキ
uint const RX_ADDRESS[RX_ADR_WIDTH]= {0x34,0x43,0x10,0x10,0x01};        //スモハユオリヨキ
//***************************************NRF24L01シトエ貳クチ・******************************************************
#define READ_REG        0x00          // カチシトエ貳クチ・
#define WRITE_REG       0x20         // ミエシトエ貳クチ・
#define RD_RX_PLOAD     0x61          // カチネ。スモハユハセンヨクチ・
#define WR_TX_PLOAD     0xA0          // ミエエキ「ハセンヨクチ・
#define FLUSH_TX        0xE1         // ウ袞エキ「ヒヘ FIFOヨクチ・
#define FLUSH_RX        0xE2          // ウ袞エスモハユ FIFOヨクチ・
#define REUSE_TX_PL     0xE3          // カィメ袒リクエラーヤリハセンヨクチ・
#define NOP             0xFF          // ア」チ・
//*************************************SPI(nRF24L01)シトエ貳リヨキ****************************************************
#define CONFIG          0x00  // ナ葷テハユキ「ラエフャ」ャCRCミ」ム鯑」ハスメヤシーハユキ「ラエフャマ・ヲキスハス
#define EN_AA           0x01  // ラヤカッモヲエヲトワノ靹テ
#define EN_RXADDR       0x02  // ソノモテミナオタノ靹テ
#define SETUP_AW        0x03  // ハユキ「オリヨキソ昮ネノ靹テ
#define SETUP_RETR      0x04  // ラヤカッヨリキ「ケヲトワノ靹テ
#define RF_CH           0x05  // ケ、ラオツハノ靹テ
#define RF_SETUP        0x06  // キ「ノ萢ルツハ。「ケヲコトケヲトワノ靹テ
#define STATUS          0x07  // ラエフャシトエ貳・
#define OBSERVE_TX      0x08  // キ「ヒヘシ犂篁ヲトワ
#define CD              0x09  // オリヨキシ・・         
#define RX_ADDR_P0      0x0A  // ニオオタ0スモハユハセンオリヨキ
#define RX_ADDR_P1      0x0B  // ニオオタ1スモハユハセンオリヨキ
#define RX_ADDR_P2      0x0C  // ニオオタ2スモハユハセンオリヨキ
#define RX_ADDR_P3      0x0D  // ニオオタ3スモハユハセンオリヨキ
#define RX_ADDR_P4      0x0E  // ニオオタ4スモハユハセンオリヨキ
#define RX_ADDR_P5      0x0F  // ニオオタ5スモハユハセンオリヨキ
#define TX_ADDR         0x10  // キ「ヒヘオリヨキシトエ貳・
#define RX_PW_P0        0x11  // スモハユニオオタ0スモハユハセンウ、カネ
#define RX_PW_P1        0x12  // スモハユニオオタ0スモハユハセンウ、カネ
#define RX_PW_P2        0x13  // スモハユニオオタ0スモハユハセンウ、カネ
#define RX_PW_P3        0x14  // スモハユニオオタ0スモハユハセンウ、カネ
#define RX_PW_P4        0x15  // スモハユニオオタ0スモハユハセンウ、カネ
#define RX_PW_P5        0x16  // スモハユニオオタ0スモハユハセンウ、カネ
#define FIFO_STATUS     0x17  // FIFOユサネ・サウエフャシトエ貳靹テ
//**************************************************************************************
void Delay(unsigned int s);
void inerDelay_us(unsigned char n);
void init_NRF24L01(void);
uint SPI_RW(uint uchar);
uchar SPI_Read(uchar reg);
void SetRX_Mode(void);
uint SPI_RW_Reg(uchar reg, uchar value);
uint SPI_Read_Buf(uchar reg, uchar *pBuf, uchar uchars);
uint SPI_Write_Buf(uchar reg, uchar *pBuf, uchar uchars);
unsigned char nRF24L01_RxPacket(unsigned char* rx_buf);
void nRF24L01_TxPacket(unsigned char * tx_buf);
//*****************************************ウ、ムモハア*****************************************
void Delay(unsigned int s)
{
        unsigned int i;
        for(i=0; i<s; i++);
        for(i=0; i<s; i++);
}
//******************************************************************************************
uint         bdata sta;   //ラエフャア・セ
sbit        RX_DR        =sta^6;
sbit        TX_DS        =sta^5;
sbit        MAX_RT        =sta^4;
/******************************************************************************************
/*ムモハアコッハ
/******************************************************************************************/
void inerDelay_us(unsigned char n)
{
        for(;n>0;n--)
                _nop_();
}
//****************************************************************************************
/*NRF24L01ウシサッ
//***************************************************************************************/
void init_NRF24L01(void)
{
    inerDelay_us(100);
        CE=0;    // chip enable
        CSN=1;   // Spi disable
        SCK=0;   // Spi clock line init high
        SPI_Write_Buf(WRITE_REG + TX_ADDR, TX_ADDRESS, TX_ADR_WIDTH);    // ミエアセオリオリヨキ       
        SPI_Write_Buf(WRITE_REG + RX_ADDR_P0, RX_ADDRESS, RX_ADR_WIDTH); // ミエスモハユカヒオリヨキ
        SPI_RW_Reg(WRITE_REG + EN_AA, 0x01);      //  ニオオタ0ラヤカッ        ACKモヲエハミ・
        SPI_RW_Reg(WRITE_REG + EN_RXADDR, 0x01);  //  ヤハミ晳モハユオリヨキヨサモミニオオタ0」ャネ郢鋗靨ェカ猗オオタソノメヤイホソシPage21  
        SPI_RW_Reg(WRITE_REG + RF_CH, 0);        //   ノ靹テミナオタケ、ラェ2.4GHZ」ャハユキ「アリミ・サヨツ
        SPI_RW_Reg(WRITE_REG + RX_PW_P0, RX_PLOAD_WIDTH); //ノ靹テスモハユハセンウ、カネ」ャアセエホノ靹テホェ20ラヨスレ
        SPI_RW_Reg(WRITE_REG + RF_SETUP, 0x07);                   //ノ靹テキ「ノ萢ルツハホェ1MHZ」ャキ「ノ荵ヲツハホェラ鋗オ0dB
}
/****************************************************************************************************
/*コッハ」コuint SPI_RW(uint uchar)
/*ケヲトワ」コNRF24L01オトSPIミエハアミ・
/****************************************************************************************************/
uint SPI_RW(uint uchar)
{
        uint bit_ctr;
           for(bit_ctr=0;bit_ctr<8;bit_ctr++) // output 8-bit
           {
                MOSI = (uchar & 0x80);         // output 'uchar', MSB to MOSI
                uchar = (uchar << 1);           // shift next bit into MSB..
                SCK = 1;                      // Set SCK high..
                uchar |= MISO;                         // capture current MISO bit
                SCK = 0;                              // ..then set SCK low again
           }
    return(uchar);                             // return read uchar
}
/****************************************************************************************************
/*コッハ」コuchar SPI_Read(uchar reg)
/*ケヲトワ」コNRF24L01オトSPIハアミ・
/****************************************************************************************************/
uchar SPI_Read(uchar reg)
{
        uchar reg_val;
       
        CSN = 0;                // CSN low, initialize SPI communication...
        SPI_RW(reg);            // Select register to read from..
        reg_val = SPI_RW(0);    // ..then read registervalue
        CSN = 1;                // CSN high, terminate SPI communication
       
        return(reg_val);        // return register value
}
/****************************************************************************************************/
/*ケヲトワ」コNRF24L01カチミエシトエ貳ッハ
/****************************************************************************************************/
uint SPI_RW_Reg(uchar reg, uchar value)
{
        uint status;
       
        CSN = 0;                   // CSN low, init SPI transaction
        status = SPI_RW(reg);      // select register
        SPI_RW(value);             // ..and write value to it..
        CSN = 1;                   // CSN high again
       
        return(status);            // return nRF24L01 status uchar
}
/****************************************************************************************************/
/*コッハ」コuint SPI_Read_Buf(uchar reg, uchar *pBuf, uchar uchars)
/*ケヲトワ: モテモレカチハセン」ャreg」コホェシトエ貳リヨキ」ャpBuf」コホェエカチウセンオリヨキ」ャuchars」コカチウセンオトク
/****************************************************************************************************/
uint SPI_Read_Buf(uchar reg, uchar *pBuf, uchar uchars)
{
        uint status,uchar_ctr;
       
        CSN = 0;                                    // Set CSN low, init SPI tranaction
        status = SPI_RW(reg);                       // Select register to write to and read status uchar
       
        for(uchar_ctr=0;uchar_ctr<uchars;uchar_ctr++)
                pBuf[uchar_ctr] = SPI_RW(0);    //
       
        CSN = 1;                           
       
        return(status);                    // return nRF24L01 status uchar
}
/*********************************************************************************************************
/*コッハ」コuint SPI_Write_Buf(uchar reg, uchar *pBuf, uchar uchars)
/*ケヲトワ: モテモレミエハセン」コホェシトエ貳リヨキ」ャpBuf」コホェエミエネ・センオリヨキ」ャuchars」コミエネ・センオトク
/*********************************************************************************************************/
uint SPI_Write_Buf(uchar reg, uchar *pBuf, uchar uchars)
{
        uint status,uchar_ctr;
       
        CSN = 0;            //SPIハケトワ      
        status = SPI_RW(reg);   
        for(uchar_ctr=0; uchar_ctr<uchars; uchar_ctr++) //
                SPI_RW(*pBuf++);
        CSN = 1;           //ケリアユSPI
        return(status);    //
}
/****************************************************************************************************/
/*コッハ」コvoid SetRX_Mode(void)
/*ケヲトワ」コハセンスモハユナ葷テ
/****************************************************************************************************/
void SetRX_Mode(void)
{
        CE=0;
        SPI_RW_Reg(WRITE_REG + CONFIG, 0x0f);                   // IRQハユキ「ヘ・ノヨミカママ・ヲ」ャ16ホサCRC        」ャヨモハユ
        CE = 1;
        inerDelay_us(130);
}
/******************************************************************************************************/
/*コッハ」コunsigned char nRF24L01_RxPacket(unsigned char* rx_buf)
/*ケヲトワ」コハセンカチネ。コナネ輦x_bufスモハユサコウ衂ミ
/******************************************************************************************************/
unsigned char nRF24L01_RxPacket(unsigned char* rx_buf)
{
    unsigned char revale=0;
        sta=SPI_Read(STATUS);        // カチネ。ラエフャシトエ貳菎エナミカマハセンスモハユラエソ・
        if(RX_DR)                                // ナミカマハヌキモハユオスハセン
        {
            CE = 0;                         //SPIハケトワ
                SPI_Read_Buf(RD_RX_PLOAD,rx_buf,TX_PLOAD_WIDTH);// read receive payload from RX_FIFO buffer
                revale =1;                        //カチネ。ハセンヘ・ノア・セ
        }
        SPI_RW_Reg(WRITE_REG+STATUS,sta);   //スモハユオスハセンコX_DR,TX_DS,MAX_PTカシヨテク゚ホェ1」ャヘィケミエ1タエヌ蟲(chóng)ヨミカマア・セ
        return revale;
}
/***********************************************************************************************************
/*コッハ」コvoid nRF24L01_TxPacket(unsigned char * tx_buf)
/*ケヲトワ」コキ「ヒヘ tx_bufヨミハセン
/**********************************************************************************************************/
void nRF24L01_TxPacket(unsigned char * tx_buf)
{
        CE=0;                        //StandBy Iト」ハス       
        SPI_Write_Buf(WRITE_REG + RX_ADDR_P0, TX_ADDRESS, TX_ADR_WIDTH); // ラーヤリスモハユカヒオリヨキ
        SPI_Write_Buf(WR_TX_PLOAD, tx_buf, TX_PLOAD_WIDTH);                          // ラーヤリハセン       
        SPI_RW_Reg(WRITE_REG + CONFIG, 0x0e);                    // IRQハユキ「ヘ・ノヨミカママ・ヲ」ャ16ホサCRC」ャヨ「ヒヘ
        CE=1;                 //ヨテク゚CE」ャシ、キ「ハセンキ「ヒヘ
        inerDelay_us(10);
}
//************************************ヨッハ************************************************************
void main(void)
{
        unsigned char tf =0;
        unsigned char TxBuf[20]={0};         //
        unsigned char RxBuf[20]={0};       
    init_NRF24L01() ;
        TxBuf[1] = 1 ;
        TxBuf[2] = 1 ;
        nRF24L01_TxPacket(TxBuf);        // Transmit Tx buffer data
        Delay(6000);
        while(1)
        {        
        SetRX_Mode();
                nRF24L01_RxPacket(RxBuf);                                       
                        if(        RxBuf[1]==1)
                        {                
                                LED=0;
                        }
                        Delay(1000);LED=1;
                        RxBuf[1] = 0x00;
                        RxBuf[2] = 0x00;
        }
       
}
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏2 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:67557 發(fā)表于 2015-1-17 13:19 | 只看該作者
我和你一樣的情況,請(qǐng)問(wèn)你調(diào)試好了嗎?
回復(fù)

使用道具 舉報(bào)

板凳
ID:1 發(fā)表于 2015-1-17 15:46 來(lái)自手機(jī) | 只看該作者
這樣的問(wèn)題我以前也遇到過(guò),程序什么的都是賣(mài)家提供的都沒(méi)有問(wèn)題,但是就是不能通訊,而且模塊一點(diǎn)反應(yīng)都沒(méi)有。后來(lái)發(fā)現(xiàn)原來(lái)是電源的問(wèn)題,弄了2個(gè)3.3v得電源就好了,好像臺(tái)灣生產(chǎn)的這種芯片普遍都存在這個(gè)問(wèn)題,但是歐洲的芯片沒(méi)有問(wèn)題。
回復(fù)

使用道具 舉報(bào)

地板
ID:74474 發(fā)表于 2015-3-10 22:58 | 只看該作者
加我Q:450596148   一定要備注
回復(fù)

使用道具 舉報(bào)

5#
ID:83083 發(fā)表于 2015-8-10 01:38 | 只看該作者
admin 發(fā)表于 2015-1-17 15:46
這樣的問(wèn)題我以前也遇到過(guò),程序什么的都是賣(mài)家提供的都沒(méi)有問(wèn)題,但是就是不能通訊,而且模塊一點(diǎn)反應(yīng)都沒(méi) ...

單片機(jī)的電源也必須要是3.3V嗎?求速回。很急。謝謝了,萬(wàn)分感謝
回復(fù)

使用道具 舉報(bào)

6#
ID:83083 發(fā)表于 2015-8-10 01:54 | 只看該作者
不懂這個(gè)程序的接收端,的主程序怎么又發(fā)送又接收的
回復(fù)

使用道具 舉報(bào)

7#
ID:44267 發(fā)表于 2015-10-18 15:25 | 只看該作者
網(wǎng)上有成功案例
回復(fù)

使用道具 舉報(bào)

8#
ID:79544 發(fā)表于 2015-10-18 18:32 | 只看該作者
百度,玩轉(zhuǎn)24L01+很詳細(xì):http://www.zg4o1577.cn/bbs/dpj-49106-1.html

評(píng)分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

9#
ID:44267 發(fā)表于 2015-10-19 12:51 | 只看該作者
IO口要加電阻,就可以了

評(píng)分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

10#
ID:116456 發(fā)表于 2016-4-24 23:31 | 只看該作者
我也一樣,不知道為啥

評(píng)分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

11#
ID:114189 發(fā)表于 2016-4-26 00:47 來(lái)自手機(jī) | 只看該作者
我上周調(diào)試通過(guò)了 也比較痛苦  可以加我qq  我?guī)湍憧纯?nbsp; 201792056  需要幫忙的加我qq是寫(xiě)好備注 (如 nrf24l01)

評(píng)分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: www.一区二区三区 | 亚洲三区在线观看 | 四虎影音 | 日韩一区二区免费视频 | 在线观看久草 | 国产精品久久午夜夜伦鲁鲁 | 999久久久| 成人欧美一区二区三区色青冈 | www.日本在线观看 | 日本久久视频 | 日韩av免费在线观看 | 一二三四在线视频观看社区 | 狠狠色综合久久婷婷 | 精品无码久久久久国产 | 国产香蕉视频在线播放 | 欧美中文字幕一区二区 | 999精品网| 欧美日韩1区 | 久久久久久久97 | www国产成人免费观看视频,深夜成人网 | 国产精品无码专区在线观看 | 欧美日韩黄 | 日韩三区在线 | 国产成人精品一区二区在线 | 国产成人精品久久 | 日韩av免费看 | 免费国产视频在线观看 | 成人欧美一区二区三区在线播放 | 在线观看毛片网站 | 日韩α片 | 欧洲性生活视频 | 国产色 | 久久av一区二区三区 | 国产精品久久国产精品99 | 97人人草| 在线欧美视频 | 成人性生交a做片 | 免费成人毛片 | 国产精品日韩在线观看一区二区 | 亚洲国产精品久久久久婷婷老年 | 精品一区二区三区免费毛片 |