Hoytman
2015-03-07 02:17:46 UTC
Chcę napisać program Arduino, który po prostu odbiera ciąg (przez bibliotekę przewodów I2C) od głównego Arduino, a następnie czeka na żądanie i odsyła ten ciąg.
Oto mój kod :
#include <Wire.h>void setup () {Wire.begin (4); Wire.onReceive (acceptEvent); Wire.onRequest (requestEvent);} String data = ""; void loop () {} void otrzymaszEvent (int howMany) {data = ""; while (Wire.available ()) {data + = (char) Wire.read (); }} void requestEvent () {Wire.write (data);}
Czytałem w API, że funkcja write () akceptuje ciąg znaków, ale ciągle otrzymuję komunikat „Brak funkcji pasującej na wezwanie ”błąd. Próbowałem po prostu zamienić
Wire.write (dane);
na
Wire.write ("test ");
i działało bez błędów. Dlaczego tak się dzieje?
Spróbuj tego zamiast wire.write (data); wire.print (dane);