Rayne_Hwang 发表于 2014-1-25 19:55:16

关于用Mirf库进行nRF24L01无线数传的一点问题

请教论坛各位大大:
我用官网上的MiRF库做nRF24L01的传输,自带的两个例程ping_Client和ping_Sever都没问题(如图),可以ping通

但是自己写了一段发送一个字节的字符的时候,发现Server可以收到数据(显示Got Packet)但是没办法在串口打印出来(如图)

TX端代码如下
// nRF24L01_TX_based_on_Mirf.ino
#include <SPI.h>
#include <Mirf.h>
#include <nRF24L01.h>
#include <MirfHardwareSpiDriver.h>
char aaa;
void setup() {
        Serial.begin(9600);
        Mirf.spi=&MirfHardwareSpi;//setup spi pins
        Mirf.init();
        Mirf.setRADDR((byte *)"TXXX1");//Set receiving address
        Mirf.payload = sizeof(char);//Set the payload length
        Mirf.config();//channel config
        Serial.println("beginning...");


}

void loop()
{
        Mirf.setTADDR((byte *)"RXXX1");
        while(Serial.read() > 0)
        {
               
       
                aaa='a';       
            
                Mirf.send((byte *)&aaa);
                while(Mirf.isSending())
                {}                       

        }
}

RX端代码如下
// nRF24L01_RX_based_on_MiRF.ino
#include <SPI.h>
#include <Mirf.h>
#include <nRF24L01.h>
#include <MirfHardwareSpiDriver.h>

char data;
char aaa;
void setup()
{
        Serial.begin(9600);

        //Setup pins / SPI
        Mirf.spi=&MirfHardwareSpi;
        Mirf.init();
       
        //config reciving address
        Mirf.setRADDR((byte *)"RXXX1");//必须是5字节

        //Set the payload length to size of uint8_t , the same of TX payload
        Mirf.payload = sizeof(char);
        Mirf.config();

        Serial.println("Listening...");
}

void loop()
{
        if(Mirf.dataReady())
        {
                Serial.println("Got Packet");
                Mirf.getData((byte *)data);
                aaa=data;
                Mirf.rxFifoEmpty();
                Serial.println((char *)&aaa);
        }
}
请问这是什么原因?
IDE版本1.0.5,模块是国产nRF24L01,板子是两块UNO

samhjn 发表于 2015-12-14 23:22:44

本帖最后由 samhjn 于 2015-12-18 13:57 编辑

啊啊啊,我范二了
页: [1]
查看完整版本: 关于用Mirf库进行nRF24L01无线数传的一点问题