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
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.
Hi, hm ist die nicht kostenpflichtig? bzw. installiert ist die bei mir nicht. Mfg Dirk
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
Hallo Hier hat dir der Weihnachtsmann noch ein Geschenk: http://www.the-starbearer.de/Praxis/Programmieren/VBPraxis.htm Gruss Übermorgen kommt der Weihnachtsmann
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ß
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/programming%20with%20wxwidgets.html 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 :-)
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.
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.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.