Forum: PC-Programmierung Windows COM Port Problem


von Christian M. (crischi)


Lesenswert?

Hallo liebe Leute,

ich programmiere mit der Windows API um eine RS232-Verbindung zu öffenen 
(virtueller COM-Port). Bisher hing mein USB-Device, dass die 
RS232-Übertragung simuliert an COM2. Nun versuche ich COM13 zu verwenden 
und scheitere.
CreateFile( sz, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, 
NULL );
wird mit INVALID_FILE_HANDLE geahndet.
Mit dem Terminal-Programm 'hyperterm' kann ich den Port aber öffnen.
Woran könnte das liegen. Mit COM2 hingegen gibt es keinerlei Probleme.

Gruß

Christian

von Simon K. (simon) Benutzerseite


Lesenswert?

Was ist denn "sz"?

von René K. (king)


Lesenswert?


von t.danielzik (Gast)


Lesenswert?

Hallo Christian,

versuch die Schnittstelle nicht mit "Com13" sondern mit
"\\.\Com13" zu öffnen, dann sollte es klappen.

Ich glaube ab Port10 müssen Backslash mit Punkt vorgestellt werden.

Sag bescheid wenn es geklappt hat.

Torsten

von Christian M. (crischi)


Lesenswert?

Hallo Torsten,

das probier ich gleich mal.
sz war einfach "COM%d", also in dem Fall COM13.
GetLastError liefert "Kann die angegebene Datei nicht finden!"
Melde mich gleich nochmal

Gruß

von Christian M. (crischi)


Lesenswert?

Ok, danke an alle.
Das wars: \\.\COM13

Gruß und hoffentlich nicht so einen verregneten Tag wie ich hier habe 
;-)

Christian

von Simon K. (simon) Benutzerseite


Lesenswert?

Christian Meurer wrote:
> Ok, danke an alle.
> Das wars: \\.\COM13
>
> Gruß und hoffentlich nicht so einen verregneten Tag wie ich hier habe
> ;-)
>
> Christian

Hehe, siehste. Ich hab mir schon sowas gedacht. Da muss halt immer so 
ein Windows-spezifischer UNC Pfad angegeben werden.

von Petra (Gast)


Lesenswert?

hi ich hab ein ähnliches problem mit dem com anschluß...allerdings bin 
ich kein experte.
habe mir einen sim card reader zugelegt...

bei der verbindung kommt aber ein error zustande und er zeigt code 10 
an, lt. gerätemanager com-anschluß.
habe nun schon alles ausprobiert,kann mir jemand helfe?


gruß petra

von Christian R. (supachris)


Lesenswert?

Könnte daran liegen, dass der Programmierer der Software nicht bedacht 
hat, dass es COM Ports größer 9 geben kann.

Da musst du den COM Port mal auf 9 oder kleiner umstellen im 
Gerätemanager.

von Der Hubert (Gast)


Lesenswert?

Jepp, es gibt viele Software, die bei COM9 einfach aufhören, ist mir mal 
bei ner Navi Software passiert, als ich meine BT GPS Maus einbinden 
wollte.

Man kann aber die COM Ports unter XP ganz gut "verbiegen" ....

von Franz (Gast)


Lesenswert?

Durch die Suche bin auf diesen Thread gestoßen, und möchte die 
Probloematik mal etwas erklären.
Kann es sein, daß Windows XP SP3 irgenwelche Probleme mit dem Com-Port1, 
also der seriellen Onboard-Schnittstelle (9 pol.) erzeugt?
Habe selbst mit diesem System schon mehrfach einen seriellen LabePrinter 
von Seiko erfolgreich genutzt, und nun plötzlich kommen laufend bei der 
SW-Installation sowie bei der Druckzuweisung Fehlermeldungen wie : 
Initialisierungsfehler -3 / Com 1 Port : Nicht verfügbar.
Der Drucker (LabelPrinter) ist definitiv i.O., da ich an einem Laptop 
mit Win 2000 dann wohl oder übel das testen mußte, und es tadellos (ohne 
SW-Install.) geklappt hat.
Habe dann die Schnittstelleneinstellungen des Com1 Ports übertragen, und 
weider das selbe Theater.
Nun habe ich vom Hersteller (Seiko) per Ee-Mail einen Treiber (gepackt 
ohne exe) zugeschickt bekommen, diesen dann über Drucker hinzufügen ins 
System integriert, und nun kommen ganz andere Fehlermeldungen : Es ist 
unmöglich eine Druckerwarteschlange für den Druckeranschluß (COM1) zu 
erzeugen.
Langsam treibt mich das System in den Wahnsinn.
Daß die Firewall eventuell dazwischenfunkt, hab ich auch schon 
ausgeschlossen, temporär abgeschalten!
Wird wohl nichts weiter übrig bleiben, ein zweites System parallel 
aufzusetzen und damit dann auf Fehlersuche zu gehen.
Es sei denn euch fällt dazu noch irgendwas hilfreiches ein.

von Ralf (Gast)


Lesenswert?

Hast du denn geprüft, ob COM1 nicht durch irgendwas anderes belegt wird? 
Lässt sich beispielsweise COM1 im HyperTerminal (oder einem anderen 
Terminalprogramm deiner Wahl) öffnen?

Ralf

von Franz (Gast)


Lesenswert?

Ralf , danke für den Tip, werd ich dann als Nächstes gleich prüfen.
So eine Vermutung hatte ich auch schon, nur was ist, wenn die Vermutung 
sich bewahrheitet?
Und wie bekomme ich raus, was da den Com1-Port blockiert?
Gibt es dazu nicht irgendein Diagnose-Tool?

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Nein, die serielle Schnittstelle funktioniert unter XP nicht anders als 
unter Windows 2000. Das ist nicht das Problem.

Nachsehen kannst Du mit dem ProcessExplorer, der bietet eine Funktion, 
die nach geöffneten Handles sucht. Gib da mal "serial" ein.

von Franz (Gast)


Lesenswert?

Dank dir Rufus für den Hinweis, jedoch kann der ProcessExplorer von 
Herrn Mark Russinovich
technet.microsoft.com/.../sysinternals/bb896653.aspx
prinzipiell ja eine ganze Menge.
Nur ebend in dem Fall nicht den belegten Port lokalisieren.
Hab das jetzt gerade noch mal probiert, unter den Anschlußeinstellungen 
die man vom Hersteller (Seiko) per Mail erhalten hat. Und offensichtlich 
lag es an der Aktivierung des FiFo-Parameters und der Flußsteuerung (HW 
/ SW).
Jetzt klappt das offensichtlich wieder so wie es soll, FiFo deaktiviert 
und Flußsteuerung aktiviert..
Muß dazu auch noch sagen, daß die Installation eines zusätzl. Druckers 
das Chaos wohl noch auf die Spitze getrieben hat, siehe Fehlermeldung 
Druckerwarteschlange.

mfG und Allen ein frohes Weihnachtsfest

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
Noch kein Account? Hier anmelden.