Thema Datum  Von Nutzer Rating
Antwort
Rot SerialPort kriegt falsche zahlen
19.06.2011 14:24:01 Leonardo B.
NotSolved

Ansicht des Beitrags:
Von:
Leonardo B.
Datum:
19.06.2011 14:24:01
Views:
1524
Rating: Antwort:
  Ja
Thema:
SerialPort kriegt falsche zahlen

Moin moin!

Ich schreiben gerade einem program für die temperaturkontrolle, und steuerung von lüfter und heizer mit einem µC und habe rieeesen probleme mit der Komunikation zwischen µC un VBA!

Durch den getportnames() befehl kriege ich die Ports, und er verbindet sich nur wenn 1 port ausgewählt wurde und schickt einen befehlt für die identifikation an dem mikrocontroller, der das richtige Antwort schicken muss sonst schiesst er den port wieder und gibt einen msgbox "falsche port" an dem user.

Das program mit BASCOM ist sehr simpel und sieht so aus:

-------------------------------------------------------------------------------------------------------------------- 

If Usr.rxc = 1 Then                                       'Wenn Byte empfangen...

 

    Befehl = Udr                                            'Byte aus UART auslesen
    Select Case Befehl
 
    Case "1"                                                'Anwort für die Verbindungserstellung
 
    Print "20"
 
    Case "2"                                                'Temperatur Abfrage
 
    Volt = Getadc(2)
    Temperatur_ganzzahl = Volt * 5
    Temperatur_kommazahl = Temperatur_ganzzahl Mod 10
    Temperatur_ganzzahl = Temperatur_ganzzahl / 10
 
    Waitms 50
 
    Print Temperatur_ganzzahl ; "." ; Temperatur_kommazahl
--------------------------------------------------------------------------------------------------------------------
 
Das program kriegt schon temperatur und speichert das in einem Access datei. Jeztt wollte ich eine Identifikationsvorgang für den µC hinzufügen was nicht erlauben würde dass der computer sich mit dem falschen COMPort verbindet. Mein Program in VBA sieht so aus:
 
--------------------------------------------------------------------------------------------------------------------
 'Button: "Hardwareverbindung"
    Private Sub Verbindung_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Verbindung.Click
        'Verbindungsaufbau zwischen VB und MC wird gestartet
        If Port.Text = "" Then
            Port.BackColor = Color.Red
            MsgBox("Keine Verbindung zwischen PC und Mikrocontroller! Bitte COM Port auswählen.")
        Else
            SerialPort1.PortName = Port.Text                                    'Ausgewählter Wert im ComboBox "port"
            SerialPort1.Open()                                                              'COM Port wird geöffnet
            Port.BackColor = Color.White
            Timer2.Enabled = True
        End If
 
        If SerialPort1.IsOpen Then
 
            Port.BackColor = Color.White
 
            SerialPort1.Write(1)
            Antwort = SerialPort1.ReadExisting()
 
            If Antwort = "20" Then                                                           'wenn antwort vom mc=20, richtiger com port ist ausgewählt...
                Timer2.Enabled = True                                                    'Timer für die Temperaturabfrage wir gestartet
                Verbindung.Enabled = False                                          'dann button "verbindung" nicht verfügbar...
 
            Else
                SerialPort1.Close()                                                           '...sonst wird der com port geschlossen
                MsgBox("Bitte richtige COM Port auswählen")
            End If
 
        End If
--------------------------------------------------------------------------------------------------------------------
 
Irgendwie kriegt er das nicht hin, sich mit dem µC zu verbinden. Ich merke dass er erst den antwort kriegt wenn der Timer für die temperaturabfrage gestartet wurde! Hat jemand ein tipp für mich???=)
 
Danke im vorraus!

Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:

 
 

  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot SerialPort kriegt falsche zahlen
19.06.2011 14:24:01 Leonardo B.
NotSolved