极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 13293|回复: 1

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

[复制链接]
发表于 2014-1-25 19:55:16 | 显示全部楼层 |阅读模式
请教论坛各位大大:
我用官网上的MiRF库做nRF24L01的传输,自带的两个例程ping_Client和ping_Sever都没问题(如图),可以ping通

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

TX端代码如下
  1. // nRF24L01_TX_based_on_Mirf.ino
  2. #include <SPI.h>
  3. #include <Mirf.h>
  4. #include <nRF24L01.h>
  5. #include <MirfHardwareSpiDriver.h>
  6. char aaa;
  7. void setup() {
  8.         Serial.begin(9600);
  9.         Mirf.spi=&MirfHardwareSpi;//setup spi pins
  10.         Mirf.init();
  11.         Mirf.setRADDR((byte *)"TXXX1");//Set receiving address
  12.         Mirf.payload = sizeof(char);//Set the payload length
  13.         Mirf.config();//channel config
  14.         Serial.println("beginning...");


  15. }

  16. void loop()
  17. {
  18.         Mirf.setTADDR((byte *)"RXXX1");
  19.         while(Serial.read() > 0)
  20.         {
  21.                
  22.        
  23.                 aaa='a';       
  24.               
  25.                 Mirf.send((byte *)&aaa);
  26.                 while(Mirf.isSending())
  27.                 {}                       

  28.         }
  29. }
复制代码


RX端代码如下
  1. // nRF24L01_RX_based_on_MiRF.ino
  2. #include <SPI.h>
  3. #include <Mirf.h>
  4. #include <nRF24L01.h>
  5. #include <MirfHardwareSpiDriver.h>

  6. char data;
  7. char aaa;
  8. void setup()
  9. {
  10.         Serial.begin(9600);

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

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

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

  22. void loop()
  23. {
  24.         if(Mirf.dataReady())
  25.         {
  26.                 Serial.println("Got Packet");
  27.                 Mirf.getData((byte *)data);
  28.                 aaa=data;
  29.                 Mirf.rxFifoEmpty();
  30.                 Serial.println((char *)&aaa);
  31.         }
  32. }
复制代码

请问这是什么原因?
IDE版本1.0.5,模块是国产nRF24L01,板子是两块UNO

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

发表于 2015-12-14 23:22:44 | 显示全部楼层
本帖最后由 samhjn 于 2015-12-18 13:57 编辑

啊啊啊,我范二了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-16 03:50 , Processed in 0.055790 second(s), 20 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表