mikrocontroller.net

Forum: PC-Programmierung VB 6.00 Rs232


Autor: Dirk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

ich arbeite mich gerade in Visual Basic 6.00 ein. Ich hatte zuerst mit
VC++ (MFC App) angefangen. Leider bin ich ein Neuling in der
Programmierung am PC und bin erstmal zum Einstieg dabei VB 6.00
zulernen.

Ich hab mich stundenlang durch das Internet gelesen, aber wirklich
verstanden hab ich anscheinend nicht alles.

Dieses VB 6.00 soll eine Debugsoftware für meine AVR's werden.
Die AVR's programmiere ich mittels AVR GCC. Der AVR sendet ueber die
RS232 Schnittstelle mir Hex Werte (z.B. startbyte, adcwert1, adcwert2,
command, crc, endbyte).

Soweit so gut. Mein Problem ist viel mehr die PC Seite. Ich habe
gelesen das man die Windows API zur seriellen Kommunikationen nutzt.

Dabei bin ich auf die diverse Komponenten gestossen. Die Komponenten
die mir gefallen kosten leider alle viel Geld.

Ich wollte Fragen welche Komponente (Freeware) ihr so nehmt oder
empfehlen koennt.

Wie gesagt ich bin Anfänger und suche eigenlich eine Komponente wie
z.B. die Uart Lib von Peter Fleury für AVR GCC. Sprich mit Ringbuffer
für Empfang und senden.

Ich hoffe mir kann jemand ein bischen weiterhelfen.

Mfg
Dirk

Autor: Dirk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ups,

die Freeware Komponente sollte auf die WinAPI nutzen.

Dirk

Autor: Rufus T. Firefly (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Um mit VB mit der seriellen Schnittstelle zu kommunizieren, benötigt man
keine zusätzlichen Komponenten.
Das mit VB mitgelieferte MSCOMM.OCX genügt vollends.

Autor: Dirk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

hm ist die nicht kostenpflichtig? bzw. installiert ist die bei mir
nicht.

Mfg
Dirk

Autor: Weihnachtsmann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Ich hatte mich früher auch mal mit VB abgemüht und ich glaube die
komponente MSCOMM.OCX war kostenlos.

Wenn nicht schau mal unter:

http://www.b-kainka.de/msrwin.htm

Gruss

Bald kommt der Weihnachtsmann

Autor: Weihnachtsmann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Hier hat dir der Weihnachtsmann noch ein Geschenk:

http://www.the-starbearer.de/Praxis/Programmieren/...

Gruss

Übermorgen kommt der Weihnachtsmann

Autor: Dirk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

vielen Dank.

Der Weihnachtsmann kommt schon morgen ;)

Mfg
Dirk

Autor: ChrisB (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schau dir das mal an, falls Du es noch nicht kennst :

http://www.activevb.de/tutorials/tut_com/com.html

Die Seite www.activevb.de kann ich sowieso nur jedem VB Entwickler
empfehlen. Viele gute Tipps, und ein hilfsbereites Forum !!

Gruß

Autor: Jürgen Schuhmacher (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn Du effektiv mit MS an der RS-232 arbeiten willst, empfehle ich Dir
mal frech meine Seite. Dort steht viel über wxWidgets. Wenn Du gerade
beginnst, solltest Du Dir das unbedingt mal ansehen.

http://home.arcor.de/juergen.schuhmacher/programmi...

Anschließend findest Du hier die Sources zur seriellen Programmierung:
www.iftools.com. Wenn Du das dortige Beispiel ein wenig umschreibst,
bist du schon fertig!

Als ich damals damit anfing, hatte ich in weniger als 20 Stunden netto
meine komplette RS-232-Applikation fertig, ohne das System vorher je
benutzt zu haben und die meisten Stunden waren Testen, Oberfläche
geraderücken und bunt machen :-)

Autor: Django (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich würde auch mscomm empfehlen habe selber ein Programm geschrieben in
dem ich Daten von einem Atmel empfange und auswerte! Lese Dir mal die
Hilfe Von VB6 durch ist eigentlich ziemlich gut erklärt.

Autor: KlaRa (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Dirk,
unter VB6.0 gibt es das Bespielprogramm VBTerm. Das ist ein komplettes
Terminalprogramm in VB und nutzt den MSCOMM.OCX.

Hier der Anfang der Ereignisfunktion in die Du Dich einklinken musst.
Vergleich ihn mal mit den Originalsource.

' Mit dem OnComm-Ereignis werden
' Kommunikationsereignisse und -fehler
' behandelt.
Private Static Sub MSComm1_OnComm()
    Dim EVMsg$
    Dim ERMsg$
    Dim Zeichenkette As String
    Dim iPos         As Integer
    Dim cMeldeZeile  As String
    Dim iLen         As Integer
    Dim iLenMin      As Integer
    Dim iLenMax      As Integer

    ' Verzweigen entsprechend der CommEvent-
    ' Eigenschaft.
    Select Case MSComm1.CommEvent
        ' Ereignis-Meldungen
        Case comEvReceive
            Dim Buffer As Variant
            Buffer = MSComm1.Input
            Zeichenkette = StrConv(Buffer, vbUnicode)
            Debug.Print "Empfangen - " & Zeichenkette
            ShowData txtTerm, (Zeichenkette)
            If mnuAS_SpeichernAus.Enabled Then
                ' Anzeigen der Eingangswerte EWS
                ' ------------------------------
                ' EWS 1072 B0A2M2K1 255      Länge = 21
                ' Kenner
                '     Zeitschlitz
                '          I2C Bus
                '            I2C Adresse
                '              Muxer 1-3
                '                Kanal 0-7
                cMeldeZeile = ""
                cBufferSW = cBufferSW & Zeichenkette
                iPos = InStr(cBufferSW, "EWS ")
                iLen = 21
                If iPos = 0 Then
                    cBufferSW = ""
                Else
                    If iPos > 1 Then
                        cBufferSW = Mid$(cBufferSW, iPos)
                    Else
                        ' steht schon vorne
                    End If
                    iPos = InStr(cBufferSW, Chr(13) & Chr(10))
                    Select Case iPos
                    Case 0
                        If Len(cBufferSW) > iLen + 1 Then
                            cBufferSW = ""
                        End If
                    Case iLen + 1
                        cMeldeZeile = Left(cBufferSW, iLen)
                        If Len(cBufferSW) > iLen + 2 Then
                            cBufferSW = Mid$(cBufferSW, iLen + 3)
                        Else
                            cBufferSW = ""
                        End If
                        frmZeigeWerte.txtGanzerText.Text = cMeldeZeile
                        MessWertSpeichern (cMeldeZeile)
                    Case Else
                        cBufferSW = ""
                    End Select
                End If

Gruss Klaus.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.