user2224350
2017-08-15 04:11:41 UTC
私はこの udp-exampleで遊んでいます。これとまばたきの例はどちらも完全に機能します。ここで、LEDを使用して、ESPが現在何を行っているかを示し、シリアルを介していくつかのデータを読み取りたいと思います。私のコードは次のようになります:
void setup(){Serial.begin(115200); Serial.setTimeout(500); while(Serial.available()== 0){} String password = Serial.readStringUntil( '。'); Serial.println(パスワード); WiFi.begin(ssid.c_str()、password.c_str()); // pinMode(LED_BUILTIN、OUTPUT); while(WiFi.status()!= WL_CONNECTED){// digitalWrite(LED_BUILTIN、LOW); delay(250); // digitalWrite(LED_BUILTIN、HIGH);遅延(250); } Serial.println( "connected"); Udp.begin(localUdpPort);}
正常に機能しますが、LEDのコメントを外すと、シリアル通信が機能しなくなったようです。シリアルモニターに印刷されているものがすべて台無しになっています(文字がないなど)。コードに問題がありますか、それとも他に何がうまくいかない可能性がありますか?
編集:最近同じコードを再試行しましたが、チップに追加の電源(3.3V、500mA)を使用しました。ただし、これでは問題は解決しませんでした。
ボーレートを9600に下げて、それが役立つかどうかを確認します。また、 `setTimeout`呼び出しについてもわかりません。
ボーレートを9600に設定しても、LEDがコメントアウトされている場合は効果がありませんが、コメントアウトされていない場合、SerialMonitorには何も表示されません(setTimeoutもコメントアウトされています)
LEDのドライバーはありますか、それともESP-01に直接接続されていますか?そして、VccとGND上の電力安定装置として追加のコンデンサがありますか?
それは私が使用しているespに組み込まれているLEDです。 USB / ftdi-チップ(ノートブックに接続されている)のVCCにVCCを接続しました。
AzDelivery FTDI AdapterFT232RLのこのチップを使用しています
短い `delay`または` yield`であっても、バックグラウンドアクティビティを続行できるようにするために、whileループの本体に何かを追加することをお勧めします。
あなたは最初のものを意味しますか?なぜこれが何かを変える必要があるのですか?
別のモジュールでも同じ結果が得られますか?シリアルモニターから何か入力しましたか? `Serial.println(password)`の後に `while(1);`を配置して、少なくともそれが印刷されるかどうかを確認できますか?たぶん、 `while(Serial.available()== 0){}`ループに `yield()`を配置します。