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はコード内で 2 回しか発生しないため、遠く離れることはできません。最初にすぐにそれを囲むコードを見てみましょう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(){の直前//initialize variables。これは単なるコメントであり、コードではないため、信頼できるものではありません。もう 1 行振り返ってみると、次のようになります。

char sensor_info[]

その行に何か問題があります。それに取り組み、理解できるかどうかを確認してください (「ヒント」については、他の行を確認してください)。わからない場合は、すぐ下に答えがあります (マウスを上に置くと表示されます)。

セミコロン「;」が必要です 最後にステートメントを完成させます。セミコロンがないため、「void setup(){」が前のステートメントの一部であると見なされます。

于 2014-12-16T11:40:51.347 に答える