mikrocontroller.net

Forum: PC-Programmierung DTR- und RTS- Leitung mit Visual Basic setzen


Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

momentan beschäftige ich mich mit der seriellen Schnittstelle. Um Daten
zu senden und zu empfangen (Tx/Rx) verwende ich das XMComm- Modul von
Richard Grier. Mein Problem besteht nun darin, dass ich für meine
Anwendung die RTS- und DTR- Leitung ansteuern muss. Microsoft zeigt
zwar wie man die Leitungen enablen und disablen kann, aber nicht wie
ich die Leitung High/Low setzen kann.

Ich hoffe, dass mir hier irgend jeman weiterhelfen kann. Weiss jemand
wie das funktioniert? Oder geht das gar nicht?

Vielen Dank schon im Voraus für eure Bemühungen!

Der Gast

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe gerade in einem anderen Forum ein C- Code gefunden, mit welchem
die RTS- Leitung gesetzt werden kann. Dies scheint relativ einfach zu
funktionieren. Weiss jemand wie man diesen Code in VB übersetzt? Oder
kennt jemand einen ähnlichen Code in VB? Das müsste doch auch mit VB
realisierbar sein.

Hier noch der C- Code:

#include <windows.h>

int main (void)
{
   HANDLE hPort;

   hPort =  CreateFile ("COM1",
      GENERIC_WRITE,
      0,
      0,
      OPEN_EXISTING,
      0,
      0);

   EscapeCommFunction (hPort, SETRTS); // RTS setzten
   Sleep (2000);
   EscapeCommFunction (hPort, CLRRTS); // RTS rücksetzten
   Sleep (2000);
   EscapeCommFunction (hPort, SETRTS); // RTS setzten
   Sleep (2000);

   CloseHandle (hPort);

   return (0);
}

Autor: Wolfram (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du solltest dir darüber klar werden ob du ein Handshakeprotokoll
benutzt
(dann wird die DTR/RTS automatisch bei richtiger Protokollwahl
gemacht)
oder ob du die Leitungen selber setzen willst.
>Weiss jemand wie man diesen Code in VB übersetzt? Oder
>kennt jemand einen ähnlichen Code in VB? Das müsste doch auch mit VB
>realisierbar sein

Ist alles in der MSDN hervorragend erklärt. Sogar mit Beispielen. Must
du nur noch rauskopieren.

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich möchte die Leitungen selber setzen. In der MSDN ist einfach erklärt,
wie man die Leitungen enabled, aber nicht wie man sie High/Low setzt.
Programmbeispiele gibt es für den "normalen" Gebrauch, mit Rx und Tx.

Autor: Thomas L. (tom)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du hast das Beispiel eh oben.
Das steht prinzipiell alles drin was du brauchst.
CreateFile ist eine normale Funktion aus der WinAPI. Beispiele dafür
gibts en masse.
Selbiges gilt für die EscapeComm. Müsste eigentlich in der kernel32.dll
zu finden sein.

Autor: Wolfram (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>In der MSDN ist einfach erklärt,
>wie man die Leitungen enabled, aber nicht wie man sie High/Low setzt
bei RS232 gibt es kein High/low sondern nur Mark/Space
in der MSDN gibt es einen Artikel wie man in VB die ganzen C Funktionen
der seriellen benutzt.

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Könntest du mir noch schreiben, wie dieser Artikel heisst. Das würde mir
die Suche etwas erleichtern. Vielen Dank für eure Antworten!
Der Gast

Autor: Wolfram (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Könntest du mir noch schreiben, wie dieser Artikel heisst. Das würde
>mir die Suche etwas erleichtern
das ist keine Suche das ist kopieren...
Der effektive Umgang mit der Hilfe deiner Programmiersprache ist eine
der wichtigsten Sachen die du lernen solltest. Dies ist das erste was
man selbst macht, bevor man ein Forum benutzt. Auch die Suchfunktion
des Forum ist eine sehr wichtige Hilfe und glaube mir da wirst du mehr
als fündig. Das Thema Serialport kommt nämlich immer wieder auf, sobald
es von der ersten Seite verschwunden ist.
Also effektive Suchworte wären SerialPort ,VB ,Visual Basic
Auf den Artikel wurde schon mehrfach in diesem Forum hingewiesen.
und auch unter Codeguru wirst du fündig.
Die Benutzng von C Funktionen in Visual Basic findest du in VB-Büchern
gewöhnlich unter Systemprogrammierung. Wenn du diese benutzen willst
schau dir DCB, und CreateFile an.
Ansonsten gibt es in VB2005 auch eine sehr leistungsfähige Serialport
klasse.

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Warum nimmst du nicht die MSCOMM.OCX? Da kannst du mit den
Steuerleitungen machen was du willst.

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.