Frage

Ich sehe ein ziemlich seltsames Verhalten von Windows bezüglich meiner COM-Puffer.

Ich verwende 3 USB-Seriell-Konverter mit FTDI-Chips.Ich öffne die COM-Ports mit CreateFile und es funktioniert alles gut.Bis auf die Baudraten haben alle 3 Ports die gleiche Konfiguration.2 arbeiten bei 38400 und einer bei 9600.

Hier ist der seltsame Teil:

Ich kann erfolgreich über den 9600-Port und einen der 38400-Ports schreiben.Die zweiten 38400-Ports scheinen die Daten zu puffern.Ich habe mich mit Hyperterminal mit diesem Port verbunden und sehe, dass ich auf den funktionierenden Ports sofort eine Antwort bekomme und auf dem „komischen“ Port die Daten erst, wenn ich meine Anwendung schließe ...

Hat das noch jemand erlebt?Wie haben Sie das gelöst?

War es hilfreich?

Lösung

Das ist sozusagen ein Schuss ins Ungewisse...Aber.

Überprüfen Sie die Flusskontrolleinstellungen für beide Enden der „seltsamen“ Verbindung.Ich habe solche seltsamen Dinge gesehen, wenn die Flusskontrolle nicht übereinstimmt.Durch das Schließen des Ports werden die Bits gelöscht und die gepufferten Daten können fließen.

Andere Tipps

Nachdem Sie ein wenig mit FTDI-Chips gearbeitet haben, würde ich Ihnen empfehlen, sich die erweiterten Treibereinstellungen für jeden Port anzusehen.Der Treiber unterstützt sowohl Pufferung als auch Latenzkontrolle, sodass Sie einen Kompromiss zwischen hohem Durchsatz und geringer Latenz finden können.Überprüfen Sie also die Einstellungen, die funktionieren, und verwenden Sie dieselben für diejenigen, die nicht funktionieren (falls sie nicht identisch sind).

Nebenbei bemerkt, durch die Verwendung von FTDI:s eigener API Sie müssen sich nicht um die Neuzuweisung von COM-Ports und dergleichen kümmern.Die API ähnelt der normalen Win32-API, bietet jedoch mehr Konfigurationsoptionen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top