Problem mit schreiben eines Bytes ( serialport.write() -VB)

oyla12

Mitglied
Nabend!

Ich sitz gerade an einem relativ simplen Problem, welches ich aber einfach nicht gelöst bekomme (Google liefert mir auch nicht das, was ich suche...). Es handelt sich einfach um die Ansteuerung eines Mickrocontrollers (AVR) mithilfe von serialport1.write() in Visual Basic 2010. Der Teil des Programms soll nichts machen, außer ein Byte an den mC zu senden. Ich möchte nicht, dass er diese Zahl als String interprätiert( z.b. 202 als 50, 48, 50 ) Für den mC sind es dann ja 3 Befehle.
Das geht mit serialport1.write(chr(124)) , ab dem Wert 128 interpretiert er aber alles als eine 63... . Und diesen Fehler bekomm ich einfach nicht ausgemerzt :/

Wie kann ich also einfach eine beliebige Zahl (Byte, 0 - 255) als direkte Ausgabe an die Schnittstelle geben, das auch wirklich der Bytewert z.B. 242 bleibt?

danke schonmal! :)
oyla
 

Shakie

Erfahrenes Mitglied
Ich vermute du hast "option explicit" auf "off", richtig?
Denn der SerialPort hat keine Write-Methode, die einen Charakter entgegen nimmt. Was also tatsächlich geschicht, ist, dass der Compiler deinen Charakter wieder in einen UTF8-String wandelt. Du hast also praktisch
Code:
serialport1.Write(CStr(chr(124)) // wandelt Charakter #124 in einen String und sendet diesen entsprechend dem eingestellten Encoding
geschrieben.
Wenn du Bytes versenden willst, dann solltest du diese Methode verwenden, falls du Charakters senden willst diese.
 
Zuletzt bearbeitet: