Dann debugge das Prpgramm und prüfe was gesendet wird aus den Bytes
Announcement
Collapse
No announcement yet.
Senden von Hex-Werten via Serialport
Collapse
X
-
So langsam zweifel ich echt hier an allem. Ich glaube so langsam dass der Fehler irgendwo anders liegt. Leider.
Also wenn ich über ein Terminalprogramm wie z.b. HTerm Hexwerte sende dann funktioniert es wie es soll aber mit meinem eigenen programm nicht.
Das Problem ist einfach, dass mein Gegenspieler ein Mikrocontroller ist auf dem das Debugen freilich kein Vergnügen ist, da dies kaum möglich ist.
Comment
-
Wenn wir aneinander vorbei reden dann tut es mir Leid aber ich habe einfach mal folgendes versucht:
Code:Sub Button2Click(sender As Object, e As EventArgs) serialPort1.WriteLine("data") Dim test As Integer test = 16 For i = 0 To 7 serialPort1.Write(test) Next End Sub
Comment
-
Ich kenne die write-Methode nicht. Könnte es sein, dass ein Umwandlung in einen String erfolgt?
Hiernach gibt es keine Methode von write, die einen int erwartet
http://msdn.microsoft.com/de-de/libr...(v=VS.80).aspxChristian
Comment
-
endlich habe ich es:
folgendes funktioniert:Code:serialPort1.Write(New Byte() {3},0,1)
EDIT:
komischer weise gehtCode:Dim Buffer(8) As Byte Buffer(1) = 16 For i = 0 To 7 serialPort1.Write(Buffer(1),0,1) Next
Comment
-
Originally posted by snaper View Postkomischer weise gehtCode:Dim Buffer(8) As Byte Buffer(1) = 16 For i = 0 To 7 serialPort1.Write(Buffer(1),0,1) Next
Und was bewirkt eigentlich
serialPort1.Write(New Byte() {3},0,1)Günther
Comment
-
Originally posted by Günther Weber View PostDa wird ein Buffer(Acht) deklariert, Buffer(Eins) wird die 16 zugewiesen und dann wird in einer Schlefe von 0 bis 7 dieses Buffer(Eins) 8x ausgegeben. Was soll das?
Und was bewirkt eigentlich
serialPort1.Write(New Byte() {3},0,1)
Comment
-
Originally posted by snaper View Post...Und ich muss gestehen dass mir die Sache mit New Byte etc auch äußerst komisch vorkam aber hab ich beim googeln gefunden und ist wohl die einfachste wenn nicht sogar einzige möglichkeit integer werte auszugeben ohne großen aufwand.
2) Mit New Byte() wird Speicherplatz für ein Byte reserviert, und wenn {3} dahinter steht wird diesem Byte der Wert 3 zugewiesen. Hab ich über Google rausgefunden, aber ich glaube 1) trifft in diesem Fall nicht zu... Jedenfalls, mit serieller Datenausgabe hat das nichts zu tun.
3) Ein Byte ist kein Integerwert. Ein Byte besteht aus 8 Bit und kann die Werte 0 bis 255 oder -127 bis +127 darstellen. Ein Integer besteht aus mindestens 2 Bytes und deckt einen dementsprechend größeren Wertebereich ab. Den kann man nicht als 8 Bit seriell übertragen sondern muß die einzelnen Bytes nacheinander senden.Günther
Comment
-
Originally posted by Günther Weber View Post1) Was man bei Google oder in Wikipedia findet, muß nicht unbedingt wahr sein.
2) Mit New Byte() wird Speicherplatz für ein Byte reserviert, und wenn {3} dahinter steht wird diesem Byte der Wert 3 zugewiesen. Hab ich über Google rausgefunden, aber ich glaube 1) trifft in diesem Fall nicht zu... Jedenfalls, mit serieller Datenausgabe hat das nichts zu tun.
3) Ein Byte ist kein Integerwert. Ein Byte besteht aus 8 Bit und kann die Werte 0 bis 255 oder -127 bis +127 darstellen. Ein Integer besteht aus mindestens 2 Bytes und deckt einen dementsprechend größeren Wertebereich ab. Den kann man nicht als 8 Bit seriell übertragen sondern muß die einzelnen Bytes nacheinander senden.
Comment
Comment