Hallo,
ich habe das Problem, dass ich einen String über den SerialPort an einen Mikrokontroller senden will. Ich baue mir den String in einer Funktion zusammen und sende ihn dann. Dabei sollen zwei Werte von 0 bis 255 in je einem Zeichen des Strings übertragen werden. Dies geht solange gut, solange der Wert kleiner/gleich 127 ist. Will ich den Wert 128 oder größer übertragen, geht es schief. Ich bekomme keine Fehlermeldung von C# aber es wird definitiv nicht das richtige übertragen, da mein Mikrokontroller darauf nicht mehr reagiert.
Ein Beispiel dazu:
Das funktioniert:
C#-Quelltext
1: 2: 3:
| int Wert1 = 127; int Wert2 = 64; serialPort1.Write(">7100AO" + Convert.ToChar(Wert1) + Convert.ToChar(Wert2)); |
Und das funktioniert nicht:
C#-Quelltext
1: 2: 3:
| int Wert1 = 128; int Wert2 = 191; serialPort1.Write(">7100AO" + Convert.ToChar(Wert1) + Convert.ToChar(Wert2)); |
Kann mir jemand sagen, ob ich etwas spezielles beachten muss, wenn in meinem String Zeichen vorkommen sollen, die einen Wert > 127 haben. Oder mache ich bei der Konvertierung etwas falsch?
Ich habe schon versucht mit einem Terminalprogramm den String an meinen Mikrokontroller zu senden, das funktioniert ohne Probleme.
Moderiert von
Christian S.: Code- durch C#-Tags ersetztModeriert von
Christian S.: Topic aus C# - Die Sprache verschoben am Mi 03.03.2010 um 17:40