VB.Net Serialport öffnen

Gast #1296725
Lesenswert?

Hi Leute,

also, ich bin erst mal blutiger Anfänger was Basic betrifft, deswegen 
nicht gleich hauen. Ich habe auch schon kräftig gegoogelt und mir MSDN 
angeschaut.
Aber so richtig schlau bin ich nicht geworden. Nun zu meinem Problem:

ich versuche mich gerade an einer Windows-Forms-Anwendung.
Ich kann nun einen serialport aus der Toolbox in das Forms-Fensteer 
ziehen und alle Einstellungen dran vornehmen.

Schaue ich jedoch in den Code, kann ich vom Serialport nix entdecken.
Das eigenschaftsfenster vom Serialport sagt mir dass der Port den Namen 
'SerialPort1' hat.
wie kann ich nun diesen Port öffnen?
Mit 'My.Computer.Ports.OpenSerialPort(SerialPort1)' scheint es nicht zu 
funktionieren?!

kann mir jemand helfen Licht ins Dunkel zu bringen?

Gruß, Jürgen
Gast #1296852
Lesenswert?

Imports System.Text    ' <=== !



    Sub SendSerialData01xxxx(ByVal data As String)
        Dim enc As Encoding = Encoding.GetEncoding(1252)
        ' Send strings to a serial port.
        Using com1 As IO.Ports.SerialPort = _
        My.Computer.Ports.OpenSerialPor("COM1",2400,IO.Ports.Parity.None,8)
            com1.Encoding = enc
            com1.Write(data)
        End Using
    End Sub


   probiere es aus!
Gast #1297601
Lesenswert?

Also, ich hab es hinbekommen.
ich habe einfach in mein Form den Serialport aus der Toolbox 
hereingezogen und die Einstellungen im Eigenschaftsfenster vorgenommen.
Damit wird es wohl automatisch mit initalisiert beim Programmstart, man 
sieht es nur nicht im Code.

Mit 'serialportname.Open()' wird der Port geöffnet, keine Ahnung warum 
es nicht auf Anhieb geklappt hat.

Später werde ich auch die Variante ausprobieren, wo der Port direkt im 
Code von mir initalisiert wird, vorerst reicht mir es aber so wie es 
ist.
Das brauche ich spätestens dann, wenn im Form die Einstellungen gemacht 
werden sollen.

Danke Juppi, man findet tatsächlich viel, aber meist ohne Erklärung mit 
Endloscode. Beispielsweise verstehe ich deinen geposteten Code nicht.

Ich bin halt Anfänger und sollte eigentlich mit den Basics anfangen wie 
zB. Konsolenanwendungen, aber in dem Punkt bin ich wohl unvernünftig :-)
Gast #1297921
Lesenswert?

Aufruf

SendSerialData01xxxx("123456273")

oder

Dim Daten  as String
Daten="123456"
SendSerialData01xxxx(Daten)

wenn das Deklariert wird können Bytes gesendet werden
Imports System.Text    ' <=== !

SendSerialData01xxxx(CHr(byte) 80%

Wenn du ein Empfänger hast ,an der seriellen.
dann wirst du merken das du sonst nur
Bytes bis 127 Dez /7F Hex sendest.

Melde dich wenn es soweit ist.

Gruß
Gast #1565215
Lesenswert?

Hallo
ich habe eine Frage zum Senden über die serielle Schnittstelle. Ich 
möchte den Wert 100 versenden: SerialPort1.Write(100).
Wird die 100 als Hex-Zahl versendet oder wird jede einzelne Ziffer im 
ASCII-Format gesendet, sprich 0x313030?
Gast #1567645
Lesenswert?

> SerialPort1.Write(100)
Von der Schreibweise her würd ich sagen, du sendest 100d/64h, also ein 
kleines 'd'.
Wenn du "100" ausgeben willst, musst du entweder parsen, oder die 
String-Entsprechung ausgeben.

Bin jetzt nicht ganz sicher, wie das geht, ich verwende C#, und die o.g. 
Funktionen hab ich bis jetzt noch nicht gebraucht.

Es könnte beispielsweise in etwa so gehen:

SerialPort1.Write((100).ToString)

Bin aber wie gesagt nicht sicher. Wenn du das .NET SDK installiert hast, 
bekommst du die Hilfedatei zum Framework, da steht dann ToString/Parse 
und auch weitere Konvertierungsfunktionen drin...

Ralf

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren