极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 14899|回复: 6

求助:nRF24L01 与Arduino链接结果引脚做错了能在程序里修改吗

[复制链接]
发表于 2018-1-21 22:16:10 | 显示全部楼层 |阅读模式
求助:nRF24L01 与Arduino链接结果引脚做错了能在程序里修改吗
pcb已经做好了



/* nRF24L01接线方式:
* MISO -> 12
* MOSI -> 11
* SCK  -> 13
* CE   -> 8
* CSN  -> 7
但是做成了
D8——CE
D9——CSN
D10——SCK
D11——MO
D12——MI
求程序修改方法!!!!!!!!!!!!

程序是这个
#include <SPI.h>  
#include <Mirf.h>  
#include <nRF24L01.h>  
#include <MirfHardwareSpiDriver.h>  
  
int value;  
String inString = "";    //内部用变量
int codo;//提取指令数字
int datadow;//提取数据   
int shuxx;//输出用变量
int rfadd;//无线模块地址选择
void setup()  
{  
  Serial.begin(9600);  
  Mirf.spi = &MirfHardwareSpi;  
  Mirf.init();  
  Mirf.setRADDR((byte *) "99999"); //设置自己的地址(发送端地址),使用5个字符  
  Mirf.payload = sizeof(value);  
  Mirf.channel = 90;              //设置所用信道  
  Mirf.config();  
  Mirf.setTADDR((byte *)"00001");           //设置默认接收端地址
  Serial.println("ok");
}  

//-----------注循环程序--------------  
void loop(){
  int i;//循环变量
//读串口
str_int();
if (shuxx> 0)//判断串口是否有数据
  {
      value=shuxx;//str_int();串口传出数值
      codo=value/1000;//提取指令数字
      datadow=value%1000;//提取数据   
      codopor();//处理命令子程序
      //Serial.println(value);
      Mirf.send((byte *)&value);    //发送指令,发送随机数value  
  while(Mirf.isSending()) delay(1);         //直到发送成功,退出循环
  for(i=0;i<=10;i++)//循环读取10次
  {
    if(Mirf.dataReady()) //反馈数据
    {  //当接收到程序,便从串口输出接收到的数据      
      Mirf.getData((byte *) &value);  
      i=20;//退出循环
     Serial.print("up--");
     Serial.println(value);
    }
   delay(100) ;
    }  
  if(i!=21){
    Serial.println("EEER!!!!!!!!!!");
    //超时错误
    }
  shuxx=-1;
  }
  //------------监听部分-------
  mon_dow();
}

//-------串口数字转数值输出子程序----
void str_int()
{
  while (Serial.available() > 0) {
    int inChar = Serial.read();
    if (isDigit(inChar)) {//isDigit()判断是否是数字
      
      inString += (char)inChar;
    }

    if (inChar == '\n') {
      shuxx=inString.toInt();//输出shuxx数值int
     // Serial.print("Value:");
      //Serial.println(inString.toInt());
      //Serial.print("String: ");
      //Serial.println(inString);
      // Serial.print("------ ");
      //Serial.println(shuxx);
      
      inString = "";
    }
  }



}



//---------------指令子程序-----

void codopor()
{
   if(codo==20) {
      address();
     // Serial.print("datadow---");   
      //Serial.println(datadow);   
   }

}
  
//----------无线模块主机地址选择子程序----------
void address()
{
   switch(datadow) {
case 1:  
Mirf.setTADDR((byte *)"00001");           //设置接收端地址
Serial.print("13");
break;
case 2:  
Mirf.setTADDR((byte *)"00002");           //设置接收端地址
Serial.print("13");
break;
case 3:  
Mirf.setTADDR((byte *)"00003");           //设置接收端地址
Serial.print("13");
break;
case 4:  
Mirf.setTADDR((byte *)"00004");           //设置接收端地址
Serial.print("13");
break;  
case 5:  
Mirf.setTADDR((byte *)"00005");           //设置接收端地址
Serial.print("13");
break;
case 6:  
Mirf.setTADDR((byte *)"00006");           //设置接收端地址
Serial.print("13");
break;
case 7:  
Mirf.setTADDR((byte *)"00007");           //设置接收端地址
Serial.print("13");
break;
case 8:  
Mirf.setTADDR((byte *)"00008");           //设置接收端地址
Serial.print("13");
break;
case 9:  
Mirf.setTADDR((byte *)"00009");           //设置接收端地址
Serial.print("13");
break;
case 10:  
Mirf.setTADDR((byte *)"00010");           //设置接收端地址
Serial.print("13");
break;

  }
}

//------------监听部分子程序-------
void mon_dow()
{
  if(Mirf.dataReady()) {  //当接收到程序,便从串口输出接收到的数据  
    Mirf.getData((byte *) &value);  
     
    codo=value/1000;//提取指令数字
    datadow=value%1000;//提取数据   
    codopor();//处理命令子程序
  
  }
}

本帖子中包含更多资源

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

x
回复

使用道具 举报

发表于 2018-1-22 08:14:36 | 显示全部楼层
在NRF24L01的库文件里面改,除啦电源不可以修改之外其他的引脚可以随便配置,亲测的哈。

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

发表于 2018-1-22 09:49:07 | 显示全部楼层
ce csn 可以,别的三个不行吧
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-1-22 21:55:46 | 显示全部楼层
我改了但是不好用
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-1-22 21:57:33 | 显示全部楼层
看我改的对么。但是没有效果。

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

发表于 2018-1-24 08:51:23 | 显示全部楼层
应该是修改不了的,mi mo 的口是arduino默认的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-1-24 17:51:18 | 显示全部楼层
我不是要改mi  mo 我只是改其他的
好像也改不了
回复 支持 反对

使用道具 举报

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

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-16 18:46 , Processed in 0.048505 second(s), 22 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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