Forum: Compiler & IDEs Mit einem Arduino einen String an eine Serielle Schnittstelle senden


von Heiko (Gast)


Lesenswert?

Hallo Zusammen,

ich versuche gerade einen Kette von Zeichen über eine Serielle 
Schnittstelle  an ein Gerät zu senden.
Dazu habe ich folgende Codes ausprobiert:

1. Versuch
char gi[] = {0x02, 0x20, 0x21, 'G', 'I', '0', '1', 0x30, 0x36, 0x03};
.
.
.
.
  Serial.println(gi);

hier werden noch mehr Zeichen übertragen, welche von den Gerät 
vermutlich als falsch empfunden werden und deshalb antwortet das Gerät 
nicht.

2. Versuch
String gi = {0x02, 0x20, 0x21, 'G', 'I', '0', '1', 0x30, 0x36, 0x03};
.
.
.
.
  Serial.write(gi,10);

hier kommt folgender Fehler:
test_source:25: error: braces around initializer for non-aggregate type 
'String'

Es kann also meine Zeichenkette irgendwie nicht in den String übernommen 
werden.

Was kann ich hier tun dass ich nur die 10 Zeichen über eine Serielle 
Schnittstelle bekomme?

Vielen Dank

: Verschoben durch User
von Helmut H. (helmuth)


Lesenswert?

Heiko schrieb:
> hier werden noch mehr Zeichen übertragen, welche von den Gerät
> vermutlich als falsch empfunden werden

Um die Empfindungen des empfangenden Geräts nicht zu verletzen würde ich 
es mal versuchen mit
1
 Serial.print(gi);

von Oliver (Gast)


Lesenswert?

Vorher würde ich aber dann doch mal ein x-beliebiges C-Buch bemühen, und 
die grundlegenden Dinge über Strings in C nachlesen.

Ein ganz wichtige Frage, die dabei zu klären ist, ist die, woran man in 
C das Ende eines Strings erkennt.

Oliver

von Quack (Gast)


Lesenswert?

Arduino-Referenz lesen wuerde schon reichen: 
http://arduino.cc/en/Serial/write

von PittyJ (Gast)


Lesenswert?

Nur zum Verständnis:

'G', 'I', '0', '1', 0x30, 0x36,

Warum nimmst du das eine mal '0', und das andere mal 0x30 ?

Verwirrt dich das nicht selber?

von Kaj (Gast)


Lesenswert?

PittyJ schrieb:
> Verwirrt dich das nicht selber?

Wie sollte es ihn verwirren, wenn er nicht mal weiß was er da tut?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.