Buchempfehlung
Mikrocomputertechnik mit Controllern der Atmel AVR-RISC-Familie
Mikrocomputertechnik mit Controllern der Atmel AVR-RISC-Familie
Umfassend, aber leicht verständlich führt dieses Buch in die Programmierung von ATMEL AVR Mikrocontrollern ein. [Mehr Infos...]
FreeBASIC-Chat
Es sind Benutzer im FreeBASIC-Chat online.
(Stand:  )
FreeBASIC bei Twitter
Twitter FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us!

Code-Beispiel

Code-Beispiele » Elektronikansteuerung

Statusleitungen der seriellen Schnittstelle über WIN-API steuern

Lizenz:Erster Autor:Letzte Bearbeitung:
GPLMitgliedSteini63 14.09.2007
#Include Once "windows.bi"

Dim hCom As handle
Dim PortNr As String = "COM1"
Dim modemStat As Dword

'Serielle Schnittstelle öffnen:
hCom = CreateFile(PortNr, GENERIC_READ Or GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL)
Print "Handle = "; hCom

'Fehlerbehandlung, falls Öffnen fehlschlägt:
If hCom = INVALID_HANDLE_VALUE Then
  Print "Fehler beim Oeffnen von "; PortNr
  Sleep
  End
 Else
  Print PortNr; " geoeffnet"
Endif

'Alle Ausgangsleitungen auf positive Spannung setzen:
EscapeCommFunction(hCom, SETRTS)    'RTS +12V
EscapeCommFunction(hCom, SETDTR)    'DTR +12V
EscapeCommFunction(hCom, SETBREAK)  'TxD +12V (Break)

Print
Print
Print "Ende mit [Esc]"

'Eingangsleitungen per Polling abfragen:
Do
  GetCommModemStatus(hCom, @modemStat)
  Locate 8,1
  If modemStat And MS_CTS_ON  Then Print "CTS  = 1" Else Print "CTS  = 0"
  If modemStat And MS_DSR_ON  Then Print "DSR  = 1" Else Print "DSR  = 0"
  If modemStat And MS_RING_ON Then Print "RING = 1" Else Print "RING = 0"
  If modemStat And MS_RLSD_ON Then Print "RLSD = 1" Else Print "RLSD = 0"
Loop Until Inkey = Chr(27)

'Alle Ausgangsleitungen auf negative Spannung zurücksetzen:
EscapeCommFunction(hCom, CLRRTS)    'RTS -12V
EscapeCommFunction(hCom, CLRDTR)    'DTR -12V
EscapeCommFunction(hCom, CLRBREAK)  'TxD -12V

'Serielle Schnittstelle schließen:
CloseHandle(hCom)

Zusätzliche Informationen und Funktionen
  • Das Code-Beispiel wurde am 14.09.2007 von MitgliedSteini63 angelegt.
  • Die aktuellste Version wurde am 14.09.2007 von MitgliedSteini63 gespeichert.
  Bearbeiten Bearbeiten  

  Versionen Versionen