Forum: Mikrocontroller und Digitale Elektronik Problem mit FT232R


von Alex (Gast)


Lesenswert?


 Hi Leute,

 ich habe zwei test USB/SERIAL Platinen, die eine mit dem FT2232C und 
die
 andere mit FT232R.
 Wenn ich die am PC anschliesse sehe im Geräte-Manager, die virtuellen 
COM-
 Schnittstellen. Wenn ich aber die
  "CreateFilecom,GENERIC_READ|GENERIC_WRITE,0,0,OPEN_EXISTING,\
      FILE_FLAG_OVERLAPPED,0);
 aufrufe kriege ich bei dem FT232R ein INVALID_HANDLE_VALUE als
 Rückgabe!!! und kann auf die Schnittstelle nciht mehr zugreifen im
 Gegenteil zu FT2232C!!! an was könnte das liegen!!!!!!


 Gruß

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

"CreateFilecom,GENERIC_READ|GENERIC_WRITE,0,0,OPEN_EXISTING,\
      FILE_FLAG_OVERLAPPED,0);


Da fehlt 'ne Klammer. Und der Text, den Du in der Variablen "com" 
angibst. Der nämlich muss bei Schnittstellen jenseits von "COM9" anders 
aufgebaut werden.

Wenn CreateFile INVALID_HANDLE_VALUE zurückgibt, kann man mit 
GetLastError den Fehlercode bestimmen. Wie lautet der?

PS: Ein Satzzeichen pro Satz genügt. Fragen werden übrigens mit anderen 
als den von Dir verwendeten Satzzeichen beendet.

von Alex (Gast)


Lesenswert?

 Hallo,
 ich muss mich erstmal für das schlechte Formatieren meiner gestrigen 
Anfrage entschuldigen.

 Das mit der Klammer ist nicht das Problem, gestern beim koppieren ist 
irgendwie die eine verschwunden.

 In meiner Funktion versuche ich einfach alle existierende Com-Ports 
aufzulisten, dafür lade ich den Namen vorher mit
1
 com.Format("COM%i",i,com);
 und dann rufe ich die CreateFile(..), bei dem Ft232R kriege ich einen 
FehlerCode = 2, (No such file or directory), mit dem FT2232 klappt es 
ohne Probleme, obwohl virtuelle Coms bei beiden Bausteine existieren!!! 
kann das an der Platine liegen? wartet irgendwie CreateFile() beim 
Öffnen auf irgendeine Antwort von der Com-Schnittstelle?

PS. das mit "Der nämlich muss bei Schnittstellen jenseits von "COM9" 
anders
aufgebaut werden" habe ich nicht ganz verstanden, bitte um Erklärung 
wenn es geht.

 Gruß

von Alex (Gast)


Lesenswert?


Hallo nochmal,

das Problem liegt an der Nummer der Schnittstelle, bei dem Ft232R kriegt 
COM14, beim dem FT2232 COM6, und COM7. Ich glaube das Problem liegt an 
der Schreibweise von dem "COM"-String, wenn die Nummer größen als 9 ist.
Wie muß man es denn schreiben? "COM 14"?

von Jens C. (jcarstens)


Lesenswert?

Alex wrote:
> Wie muß man es denn schreiben? "COM 14"?

Moin Alex!

Bei uns funktioniert schon seit Ewigkeiten (VC++):

com.Format("\\\\.\\COM%d",Port);

HTH

Jens

von Alex (Gast)


Lesenswert?

hey danke, es funzt jetzt!!
für was sind die "\\\\.\\" denn?

Gruß

von Jens C. (jcarstens)


Lesenswert?

Na, das freut mich!

Das "\\.\" (wie es nachher im String steht) ist der UNC-Pfad für lokale 
Laufwerke und Geräte unter Windoofs, siehe Wikipedia->UNC.

Warum diese Angabe allerdings in dieser Form für COM-Ports über 10 bei 
Windoofs erforderlich ist, bei den darunter auch die Angabe ohne den 
Schnickschnack vorweg, dass wissen wohl einzug und allein die 
Programmieraffen in Redmond. Wenn überhaupt...

Ich habe den Tip auch vor einigen Jahren von Druidenohr zu Druidenohr 
erfahren. Vielleicht hilft dieser Thread ja auch in Zukunft den 
Verirrten und Verzweifelten ;-)

IdS,
Jens

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.