目前我无法将数据从一个xbee series1发送到另一个xbee series1(两者都连接到Arduino unor3)。这是发送数据的程序。
#include <eHealth.h>
#include <SoftwareSerial.h>
SoftwareSerial mySerial(0, 1); // RX, TX
float temperature;
char xbeedata[4];
// the setup routine runs once when you press reset:
void setup() {
Serial.begin(9600);
}
// the loop routine runs over and over again forever:
void loop() {
temperature = eHealth.getTemperature();
memcpy(xbeedata, &temperature, 4); // send data
Serial.print("Temperature (ºC): ");
Serial.print(temperature, 2);
Serial.println("");
delay(1000); // wait for a second
}
接收端的程序是
#include <eHealth.h>
#include <SoftwareSerial.h>
SoftwareSerial mySerial(0, 1); // RX, TX
float temperature;
char *xbeedata[4];
// the setup routine runs once when you press reset:
void setup() {
Serial.begin(9600);
}
// the loop routine runs over and over again forever:
void loop() {
temperature = eHealth.getTemperature();
memcpy(&temperature, xbeedata, 4); // receive data
Serial.print("Temperature (ºC): ");
Serial.print(temperature, 2);
Serial.println("");
delay(1000); // wait for a second
}
我缺少什么吗?我应该像串行监视器上的float temperature->byte array ->xbee(send) -> xbee(receive) -> byte array -> float temperature ->
显示一样发送浮动。我目前正在使用Arduino IDE。
答案 0 :(得分:0)
尝试将您的浮点值乘以100并将其保存为int变量,然后您可以将int转换为字符串,如String(Yourintvariable)并转换为char数组以将其发送到串行,请注意串行转换自动转换为字节。我希望我有所帮助。
最好的问候