1

イーサネット シールドに問題があります。

これは私が書いたスケッチです

void loop() {
  wdt_reset ();

  EthernetClient client = server.available();
  if (client) {
    wdt_reset();
    if (client.available() > 0) {
      char thisChar = client.read();
      Serial.write(thisChar);
      RXtext += thisChar;
      // --------------------- this one repeat for few other strings ----
      if (RXtext.indexOf("L1_On") >= 0) {
        // do stuff
        RXtext = GetStat();  // get system status and replay
        server.print(RXtext);
        Serial.println(RXtext);
        RXtext = "";

        wdt_reset();
      }
      // ---------- end of repeat -------
    }
  }
}

何らかの理由で、arduino に数回接続するとスタックし、wtd がリセットされず、リセットされ、IP が失われ、IP が取得され255.255.255.255ます。

誰かが私に何が問題なのか教えてもらえますか?

4

1 に答える 1

2

ループの最後で接続を閉じる必要があります。

client.stop();

そうしないと、接続が不足し、物事がロックされ、ウォッチドッグ タイマーがタイムアウトします。

イーサネット ライブラリのドキュメントによると、ライブラリは最大 4つの同時接続 (着信、発信、または組み合わせ) をサポートします。

于 2013-01-21T21:09:36.387 に答える