1

我最近一直在使用我的 Arduino Uno 和土壤中的电导率传感器(来自 Decagon Devices 的 5TE 传感器)进行一个项目。我已准备好编写代码,并在 GitHub 上找到了此示例代码(当您向下滚动页面时,示例代码就在那里)。当试图在最新版本的 Arduino 上运行它时,它给了我这些编译错误:

sketch_dec15a:7: error: expected initializer before 'void'

sketch_dec15a:4: error: 'SDISerial' does not name a type

sketch_dec15a:9: error: expected initializer before 'void'

sketch_dec15a.ino: In function 'void loop()':

sketch_dec15a:22: error: 'connection' was not declared in this scope

注意:我相信我正确安装了库,但不是 100% 确定……更像是 85%。

代码有什么问题以及如何使其工作?

4

1 回答 1

1

示例代码是错误的。查看编译错误。它说的第一件事是:

sketch_dec15a:7: error: expected initializer before 'void'

所以它的意思是它发现了一些东西,void并期望首先看到其他东西。void在您的代码中只出现两次,所以我们不会太远。让我们先看一下围绕它的代码void

char tmp_buffer[4];
char sensor_info[]
//initialize variables
void setup(){
      connection.begin();
      Serial.begin(9600);//so we can print to standard uart
      //small delay to let the sensor do its startup stuff
      delay(3000);//3 seconds should be more than enough
}

就在void setup(){is之前//initialize variables。这只是一个评论,而不是代码,所以它并不重要。回顾另一行,我们看到:

char sensor_info[]

那条线有问题。处理它,看看你是否能弄清楚(检查其他行的“提示”)。如果你想不通,答案就在下面(将鼠标放在它上面查看):

它需要一个分号“;” 最后完成声明。因为缺少分号,它认为“void setup(){”是前面语句的一部分。

于 2014-12-16T11:40:51.347 回答