Pytanie:
Jak wysłać string do mastera przy użyciu i2c
Hoytman
2015-03-07 02:17:46 UTC
view on stackexchange narkive permalink

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);
Jeden odpowiedź:
Ignacio Vazquez-Abrams
2015-03-07 02:19:54 UTC
view on stackexchange narkive permalink

data to ciąg . „test” to znak * . Wire.write () nie ma prototypu, który pobiera String.

  Wire.write (data. c_str ());  
działa idealnie :)


To pytanie i odpowiedź zostało automatycznie przetłumaczone z języka angielskiego.Oryginalna treść jest dostępna na stackexchange, za co dziękujemy za licencję cc by-sa 3.0, w ramach której jest rozpowszechniana.
Loading...