1

Wire ライブラリを使用して、シールドから Arduino に データを移動しています。

シールドは常に正確に 36 バイト (GPS デバイス) を送信しますが、Arduino は合計 36 バイトになる 2 つのデータ転送を認識します。各転送で常に同じ数になるとは限りませんが、常に合計 36 バイトになります。このsetup()ルーチンは、データが入るたびに再実行されます。

まるでライブラリが Arduino アプリケーションに再入力し、王道にねじ込んでいるかのようです。

これは可能ですか?

4

2 に答える 2

3

setUp()データが入るたびに が実行されている場合(これについて確信がありますか?)、これは Arduino が何らかの理由でリセット/再起動していることを意味します。GPS シールドにどのように電力を供給していますか? Arduino への電源に不具合がある場合 (おそらく電流が多すぎる)、リセットが発生する可能性があります。また、コードがメモリを使いすぎている可能性もあります。私はまず電源の問題を見ていきます。

于 2013-01-16T08:01:42.217 に答える
2

を使用している場合Wire.available、送信されたバイト数が返されることは保証されないことに注意してください。ゼロを返すまで繰り返し呼び出す必要があります。

Arduino ドキュメントの例を参照してください。

于 2013-01-16T12:29:55.267 に答える