www.mikrocontroller.net

Forum: PC-Programmierung Windows COM Port Problem


Autor: Christian Meurer (crischi)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Simon K. (simon) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was ist denn "sz"?

Autor: René König (king)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: t.danielzik (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Christian Meurer (crischi)
Datum:

Bewertung
0 lesenswert
nicht 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ß

Autor: Christian Meurer (crischi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok, danke an alle.
Das wars: \\.\COM13

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

Christian

Autor: Simon K. (simon) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Petra (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Der Hubert (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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" ....

Autor: Franz (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Ralf (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Franz (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Franz (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

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.