我正在使用arduino UNO和mega2560。 我使用了2个模块NRF24L01。 一个用于传输和其他接收。 问题: 我在arduino串口监视器的接收端获得随机值。 当我使用int类型时,它会连续提供随机整数。 当我使用String类型时,它会给出随机字符。
编码:
/*-----( Import needed libraries )-----*/
#include <SPI.h> // Comes with Arduino IDE
#include "RF24.h" // Download and Install (See above)
/*-----( Declare Constants and Pin Numbers )-----*/
//None yet
/*-----( Declare objects )-----*/
// (Create an instance of a radio, specifying the CE and CS pins. )
RF24 myRadio (7, 8); // "myRadio" is the identifier you will use in following methods
/*-----( Declare Variables )-----*/
byte addresses[][6] = {"1Node"}; // Create address for 1
int dataReceived; // Data that will be received from the transmitter
void setup() /****** SETUP: RUNS ONCE ******/
{
// Use the serial Monitor (Symbol on far right). Set speed to 115200 (Bottom Right)
Serial.begin(115200);
delay(1000);
//Serial.println(F("RF24/Simple Receive data Test"));
//Serial.println(F("Questions: terry@yourduino.com"));
myRadio.begin(); // Start up the physical nRF24L01 Radio
myRadio.setChannel(108); // Above most Wifi Channels
// Set the PA Level low to prevent power supply related issues since this is a
// getting_started sketch, and the likelihood of close proximity of the devices. RF24_PA_MAX is default.
myRadio.setPALevel(RF24_PA_MIN);
// myRadio.setPALevel(RF24_PA_MAX); // Uncomment for more power
myRadio.openReadingPipe(1, addresses[0]); // Use the first entry in array 'addresses' (Only 1 right now)
myRadio.startListening();
}//--(end setup )---
void loop() /****** LOOP: RUNS CONSTANTLY ******/
{
if ( myRadio.available()) // Check for incoming data from transmitter
{
while (myRadio.available()) // While there is data ready
{
myRadio.read( &dataReceived, sizeof(dataReceived) );
//Serial.println("Data is coming");
// Get the data payload (You must have defined that already!)
}
} // DO something with the data, like print it
else{
Serial.println("Data received = ");
Serial.println(dataReceived);
delay(200);}
}//--(end main loop )---
答案 0 :(得分:0)
您似乎可能会使用相同的目标变量多次调用myRadio.read()
。
这将导致第二次进行while循环时,已经存储在该变量中的数据被覆盖。