Spørsmål:
Hvordan sender jeg en streng til master ved hjelp av i2c
Hoytman
2015-03-07 02:17:46 UTC
view on stackexchange narkive permalink

Jeg vil skrive et Arduino-program som bare mottar en streng (via I2C-ledningsbiblioteket) fra en master Arduino, så venter på en forespørsel og sender den strengen tilbake.

Her er koden min :

  #include <Wire.h>void setup () {Wire.begin (4); Wire.onReceive (receiveEvent); Wire.onRequest (requestEvent);} Strengdata = ""; ugyldig sløyfe () {} ugyldig mottaksevent (int howMany) {data = ""; mens (Wire.available ()) {data + = (char) Wire.read (); }} ugyldig requestEvent () {Wire.write (data);}  

Jeg leste i API-et at skriv () -funksjonen godtar en streng, men jeg får stadig "Ingen samsvarende funksjon for samtale "feil. Jeg prøvde å bare bytte ut

  Wire.write (data);  

med

  Wire.write ("test ");  

og det fungerte uten feil. Hvorfor er dette tilfelle?

Prøv dette i stedet for wire.write (data); wire.print (data);
En svar:
Ignacio Vazquez-Abrams
2015-03-07 02:19:54 UTC
view on stackexchange narkive permalink

data er en streng . "test" er en char * . Wire.write () har ingen prototype som tar en String.

  Wire.write (data. c_str ());  
fungerer perfekt :)


Denne spørsmålet ble automatisk oversatt fra engelsk.Det opprinnelige innholdet er tilgjengelig på stackexchange, som vi takker for cc by-sa 3.0-lisensen den distribueres under.
Loading...