UART Befehl auswerten und uint8_t zu Char

Gast #3413043
Lesenswert?
• ▲
▼
Hallo,

ich bin µC Anfänger, wie man aus dem Betreff schließen kann. Nun möchte 
ich zunächst Befehle vom PC an den µC senden.

Der µC Empfängt so lange Zeichen bis \n empfangen wird. Das 
funktioniert, ich kann die Zeichenkette wieder ausgeben. Sende ich vom 
PC "o" + Enter, ist if (Text[0] == 'o') gleich True. Sende ich aber 
"LED" + Enter, bekomme ich keine "wahre" If-Abfrage hin ('LED'; 'LED\n' 
etc.)
Wie muss diese aussehen bzw. wie muss der String "beschnitten" werden?

Das zweite Problem hat sich ergeben, als ich zur Information den 
uinit8_t Schleifenzähler-Wert an den PC senden wollte. Der Wert ist 
nicht größer als 5. Ich kann Text[0] = Schleifenzähler zuweisen aber es 
wird nicht der Wert übertragen. Wenn ich einer unit8_t-Variable den Wert 
= '5' zuweise, geht das Ganze aber. Wie bekomme ich das mit dem 
Schleifenzähler hin?

Danke für eure Hilfe und Nachsicht ;).
#3413050
Lesenswert?
• ▲
▼
Gerd schrieb:
> Der µC Empfängt so lange Zeichen bis \n empfangen wird. Das
> funktioniert, ich kann die Zeichenkette wieder ausgeben. Sende ich vom
> PC "o" + Enter, ist if (Text[0] == 'o') gleich True. Sende ich aber
> "LED" + Enter, bekomme ich keine "wahre" If-Abfrage hin ('LED'; 'LED\n'
> etc.)
> Wie muss diese aussehen bzw. wie muss der String "beschnitten" werden?

http://www.mikrocontroller.net/articles/FAQ#Wie_funktioniert_String-Verarbeitung_in_C.3F

> Das zweite Problem hat sich ergeben, als ich zur Information den
> uinit8_t Schleifenzähler-Wert an den PC senden wollte. Der Wert ist
> nicht größer als 5. Ich kann Text[0] = Schleifenzähler zuweisen aber es
> wird nicht der Wert übertragen. Wenn ich einer unit8_t-Variable den Wert
> = '5' zuweise, geht das Ganze aber. Wie bekomme ich das mit dem
> Schleifenzähler hin?

http://www.mikrocontroller.net/articles/FAQ#Wie_kann_ich_Zahlen_auf_LCD.2FUART_ausgeben.3F
#3413383
Lesenswert?
• ▲
▼
Hallo Gerd,

typisch Anfänger, deine Fragen sind nicht beantwortbar weil total aus 
dem Zusammenhang gerissen.

Beispiel: "Sende ich aber "LED" + Enter, bekomme ich keine "wahre" 
If-Abfrage hin ('LED'; 'LED\n' etc.)"

Das kann viele Ursachen haben, aber ohne den kompletten Code zu sehen 
ist es müßig zu spekulieren. 'LED' zum Beispiel ist ja schon syntaktisch 
falsch.

Also, Fragen sinnvoll zu stellen will auch gelernt sein ;)

LG, Sebastian
Gast #3416647
Lesenswert?
• ▲
▼
Hallo und danke für eure Hilfe.

@Fabian: Mit strcmp() kann ich nun die Befehle auswerten und mit itoa() 
die Zahlen in sendbare Strings wandeln.

@Sebastian: Wenn ich weitere Fragen habe, werde ich mich bemühen diese 
konkreter zu formulieren und Code anzuhängen.

@Svenska: \r hatte ich eigentlich auch gemeint ;)

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.