 |
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
jojo2
Anmeldungsdatum: 21.06.2022 Beiträge: 2
|
Verfasst am: 21.06.2022, 07:36 Titel: Com Port Probleme |
|
|
Hallo,
ich öffne einen Com Port und möchte im Anschluss Text dort Ausgeben. Das funktioniert auch einwandfrei. Wenn ich dann aber die Antworten des Gegenübers mit LINE Input einlesen möchte, kann ich danach nichts mehr senden und erhalte ERR 3.
Schließe ich den Com Port und öffne ihn wieder geht alles wieder so lange bis ich mit Line Input wieder einlese.
Ist das ein Bug?
Open "COM2: 9600,8,O,1" For Random As #1
Print #1,"reset"
sleep 50
Line Input #1,adata //bis hier hin klappt alles
Sleep 50
Print ":MP" //Bricht ab mit Err 3 |
|
Nach oben |
|
 |
HorstD
Anmeldungsdatum: 01.11.2007 Beiträge: 110
|
Verfasst am: 21.06.2022, 18:44 Titel: |
|
|
Line Input liest eine Zeile so lange ein, bis das Zeilenende (CrLf) kommt.
Wenn adata nicht mit CrLf endet, kannst du lange warten.
Versuch's mal mit INPUT. |
|
Nach oben |
|
 |
jojo2
Anmeldungsdatum: 21.06.2022 Beiträge: 2
|
Verfasst am: 22.06.2022, 07:18 Titel: |
|
|
Das Line Input ist nicht das Problem. Das LF am Ende kommt und das Programm läuft weiter.
Nur danach kann ich nicht mehr senden... |
|
Nach oben |
|
 |
grindstone
Anmeldungsdatum: 03.10.2010 Beiträge: 1278 Wohnort: Ruhrpott
|
Verfasst am: 22.06.2022, 12:07 Titel: |
|
|
Hallo jojo2 und willkommen im Forum!
Bist du sicher, daß das Senden bei dir überhaupt funktioniert? Denn das, was du als Code gepostet hast, öffnet mit Sicherheit keinen Com-Port. Der entsprechende Befehl lautet nicht OPEN, sondern OPEN COM, in der Parameterliste sind Parität und Anzahl der Datenbits vertauscht, und ein Dateimodus ("For Random") wird überhaupt nicht angegeben. Außerdem muß bei 8 Datenbits die Parität "N" sein.
Die Zeile müsste also korrekt lauten: Code: | Open Com "COM2:9600,N,8,1" As #1 | für 9600 Baud, keine Parität, 8 Datenbits und 1 Stopbit auf Com2, oder besser: Code: | If Open Com ("COM2:9600,N,8,1" As #1) <> 0 Then
Dim As Integer fehlernr = Err
Print "Fehler beim Öffnen des Ports (Error"; fehlernr; ")"
Sleep
End
EndIf |
Außerdem müsste es in der letzten Zeile heißen:sonst erfolgt die Ausgabe auf den Bildschirm.
Gruß
grindstone _________________ For ein halbes Jahr wuste ich nich mahl wie man Proggramira schreibt. Jetzt bin ich einen! |
|
Nach oben |
|
 |
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|