使arduino从nRF24(SPI和nRF库)接收数据,同时使用serialcommand读取串行端口,等待数据请求

使arduino从nRF24(SPI和nRF库)接收数据,同时使用serialcommand读取串行端口,等待数据请求,arduino,Arduino,我能够使用nRF24L01芯片将数据从一个arduino传输到另一个arduino。但是,我只需要在串行端口上发送特定命令时才需要发送数据。我希望能够在串行端口上写“A”,并让arduino用最新数据回复。使用serialcommand库很容易做到这一点,如果我直接插入,它就可以工作。然而,当我添加nRF24L01模块时,serialcommand.h不再用数据响应。我甚至试着移除if(radio.available())。。因此,不会接收任何数据,而且安装程序中存在radio.begin()这

我能够使用nRF24L01芯片将数据从一个arduino传输到另一个arduino。但是,我只需要在串行端口上发送特定命令时才需要发送数据。我希望能够在串行端口上写“A”,并让arduino用最新数据回复。使用serialcommand库很容易做到这一点,如果我直接插入,它就可以工作。然而,当我添加nRF24L01模块时,serialcommand.h不再用数据响应。我甚至试着移除if(radio.available())。。因此,不会接收任何数据,而且安装程序中存在radio.begin()这一事实使得serialcommand“A”无法工作。当我删除无线电内容时,命令“A”会用三个零(默认数据)进行回复

这是我的接收代码。我仍然认为自己是初学者,我从来没有正式研究过C/C++。我们非常感谢您提供的任何帮助或想法

.
#include <SoftwareSerial.h>
#include <SerialCommand.h>
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>

SerialCommand sCmd;

RF24 radio(7, 8); // CE, CSN

const byte address[6] = "00001";

int Array[3];

void setup() {

Serial.begin(9600);
sCmd.addCommand("A", serialdataPrint );
radio.begin();
radio.setRetries(15, 15);
radio.openReadingPipe(0,address); 
radio.setPALevel(RF24_PA_MIN);
radio.startListening();

}

void loop() {

   while (Serial.available() > 0){
    sCmd.readSerial();

    if (radio.available()) {

    int Array_received[3];

    radio.read(&Array_received, sizeof(Array_received));

    Array[0] = Array_received[0];
    Array[1] = Array_received[1];
    Array[2] = Array_received[2];
    } 
  }
}


void serialdataPrint ()
{
    Serial.println(Array[0]);
    Serial.println(Array[1]);
    Serial.println(Array[2]);
}

。
#包括
#包括
#包括
#包括
#包括
串行命令sCmd;
RF24无线电(7,8);//行政长官
常量字节地址[6]=“00001”;
int数组[3];
无效设置(){
Serial.begin(9600);
sCmd.addCommand(“A”,serialdataPrint);
收音机。开始();
无线电设置重试(15,15);
radio.openReadingPipe(0,地址);
无线电设置电平(RF24\u PA\u MIN);
收音机;
}
void循环(){
while(Serial.available()>0){
sCmd.readSerial();
if(radio.available()){
接收到int数组_[3];
radio.read(&Array_received,sizeof(Array_received));
数组[0]=接收到的数组_[0];
数组[1]=接收到的数组_[1];
数组[2]=接收到的数组_[2];
} 
}
}
void serialdataPrint()
{
Serial.println(数组[0]);
Serial.println(数组[1]);
Serial.println(数组[2]);
}