Also erst mal zu HeXPloreR :
Der Daniel beweist ziemliche Geduld mit Dir. Ein großes Lob.
Das finde ich auch ,einen großen Dank.
Hast Du Port 1 oder 10? Mal schreibst Du so, dann wieder so...
Also bei mir ist es Com 10. Doch hat mir das Programm gesagt dass es bei Com1 nicht gefunden hat ,da ich bei dieser Sub vergessen habe den Eingang du deklarieren.
Zu Daniel:
Dann musst du den Timer mit einem Button enablen und erst den Comport, Baudrate etc zuweisen.
Wie genau ??
So ??:::
Code:
Imports System.IO.Ports.SerialPort
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Try
SerialPort1.PortName = TextBox1.Text
SerialPort1.BaudRate = TextBox2.Text
SerialPort1.Open()
Button1.Enabled = False
Button2.Enabled = True
Button3.Enabled = True
CheckBox1.Enabled = True
CheckBox2.Enabled = True
Catch ex As Exception
MsgBox("Verbindung konnte nicht hergestellt werden")
End Try
End Sub
Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
If SerialPort1.IsOpen = True Then
SerialPort1.Close()
End If
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
SerialPort1.Write("1" & vbCr)
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
SerialPort1.Write("0" & vbCr)
End Sub
Private Sub CheckBox1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox1.CheckedChanged
If CheckBox1.Checked = True Then
Label1.Text = "LED1 ist an"
SerialPort1.Write("1" & vbCr)
Else
Label1.Text = "LED1 ist aus"
SerialPort1.Write("0" & vbCr)
End If
End Sub
Private Sub CheckBox2_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox2.CheckedChanged
If CheckBox2.Checked = True Then
Label2.Text = "LED2 ist an"
SerialPort1.Write("3" & vbCr)
Else
Label2.Text = "LED2 ist aus"
SerialPort1.Write("2" & vbCr)
End If
End Sub
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
SerialPort1.PortName = TextBox1.Text
SerialPort1.BaudRate = TextBox2.Text
SerialPort1.Open()
If SerialPort1.BytesToRead > 0 Then
Do
TextBox3.AppendText(Chr(SerialPort1.ReadByte))
TextBox3.ScrollToCaret()
If SerialPort1.BytesToRead = 0 Then
Exit Do
End If
Loop
End If
SerialPort1.Close()
End Sub
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
Timer1.Enabled = True
End Sub
End Class
Zur Erklärung des Codes : die Checkboxen musst du nicht beachten.
Lesezeichen