C++ Arduino数组中的值已损坏
该程序应该持续监听来自植物花盆中土壤湿度传感器的433MHz信息,并根据这些读数决定是否启动泵。C++ Arduino数组中的值已损坏,c++,arrays,arduino,C++,Arrays,Arduino,该程序应该持续监听来自植物花盆中土壤湿度传感器的433MHz信息,并根据这些读数决定是否启动泵。 此外,它应该在监听时检查有线水传感器 所有433 MHz接收到的信息都应存储在阵列传感器数据[i]中 启动时,位置1至NUM\u传感器(在本例中为3)充满常量intNO\u数据(500)。 问题是,由于某种原因,我在数组编号3中得到了损坏的编号: 连续打印: 已检查有线花盆 已达到所有传感器或超时 列阵印刷:500 列阵印刷:500 数组_打印:30001 在这种情况下,30001出现在阵列中,没
此外,它应该在监听时检查有线水传感器 所有433 MHz接收到的信息都应存储在阵列
传感器数据[i]
中启动时,位置
1
至NUM\u传感器(在本例中为3)充满常量intNO\u数据(500)。
问题是,由于某种原因,我在数组编号3中得到了损坏的编号:
连续打印:
已检查有线花盆
已达到所有传感器或超时
列阵印刷:500
列阵印刷:500
数组_打印:30001
在这种情况下,30001出现在阵列中,没有具体原因(我猜)。。没有收到任何消息。
以下是更改为最小值的代码,以便发生错误:
#包括
RCSwitch mySwitch=RCSwitch();
//无线土壤湿度读数接收器设置
无符号长最后一次接地检查=0;
const int NUM_传感器=3;
常数32传感器超时=30000;
int sensor_data[传感器数量];
uint32上次消息时间=0;
uint32_t经过=0;
浮动总_值=0;
浮点实值=0;
整数计数=0;
const int NO_DATA=500;
布尔值=假;
//###################//
无效设置()
{
Serial.begin(9600);
mySwitch.enableCeive(INT1);//中断2=引脚2
延迟(1500);
Serial.println(“”);
Serial.println(“开始”);
Serial.println(“”);
对于(int i=0;i 10000){
Serial.println(“检查有线花盆”);
}
Serial.println(“已检查有线花盆”);
最后一次接地检查=毫秒();
}
如果(mySwitch.available()){//在收到433 MHz消息时启动
接收=真;
double value=mySwitch.getReceivedValue();
延迟(1000);
int传感器_id=1;
int传感器_值=2;
如果(sensor_value>=0&&sensor_value您首先分配一个大小为NUM_SENSORS=3
的数组,然后继续使用它,就像它的大小为4一样
您的数组有3个元素sensor\u data[0]
、[1]
和[2]
。您的循环条件i首先分配一个大小为NUM\u SENSORS=3
的数组,然后继续使用它,就好像它的大小为4一样
你的数组有3个元素sensor\u data[0]
、[1]
和[2]
。你的循环条件isensor\u data[NUM\u SENSORS]
。所以i是的,你的数组只有3个元素,但你处理了4个……非常感谢你……愚蠢的错误。sensor\u data[NUM\u SENSORS]
。所以我是的,你的数组只有3个元素,但是你处理了4个…非常感谢你…愚蠢的错误。。