qpanda 发表于 2014-7-23 11:01:12

nRF24L01模块不能完成收发

最近在准备做一套远程采集的东西,使用了nRF24L01模块,在测试的时候,使用了RF24Network类库的例子,helloworld_rx和,接线按照SPI接口(D11,D12,D13),CE为D9,片选CSN为D10。 发送端始终发送失败 显示 Sending...failed,接受端无反应。请问大家知道问题在哪里吗。还有个问题,如果只启动发送端,不启动接受端,发送正常的话会显示 Sending...ok吗


/*
Copyright (C) 2012 James Coliz, Jr. <[email protected]>

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
version 2 as published by the Free Software Foundation.
*/

/**
* Simplest possible example of using RF24Network
*
* TRANSMITTER NODE
* Every 2 seconds, send a payload to the receiver node.
*/

#include <RF24Network.h>
#include <RF24.h>
#include <SPI.h>

// nRF24L01(+) radio attached using Getting Started board
RF24 radio(9,10);

// Network uses that radio
RF24Network network(radio);

// Address of our node
const uint16_t this_node = 1;

// Address of the other node
const uint16_t other_node = 0;

// How often to send 'hello world to the other unit
const unsigned long interval = 2000; //ms

// When did we last send?
unsigned long last_sent;

// How many have we sent already
unsigned long packets_sent;

// Structure of our payload
struct payload_t
{
unsigned long ms;
unsigned long counter;
};

void setup(void)
{
Serial.begin(57600);
Serial.println("RF24Network/examples/helloworld_tx/");

SPI.begin();
radio.begin();
network.begin(/*channel*/ 90, /*node address*/ this_node);
}

void loop(void)
{
// Pump the network regularly
network.update();

// If it's time to send a message, send it!
unsigned long now = millis();
if ( now - last_sent >= interval)
{
    last_sent = now;

    Serial.print("Sending...");
    payload_t payload = { millis(), packets_sent++ };
    RF24NetworkHeader header(/*to node*/ other_node);
    bool ok = network.write(header,&payload,sizeof(payload));
    if (ok)
      Serial.println("ok.");
    else
      Serial.println("failed.");
}
}
// vim:ai:cin:sts=2 sw=2 ft=cpp

页: [1]
查看完整版本: nRF24L01模块不能完成收发