mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik FTDI D2XX Treiber - Problem mit FT_OpenEx


Autor: TK (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

ich spiele gerade mit der Funktion FT_Open bzw. FT_OpenEx herum und
bekomme bei FT_OpenEx immer einen Fehler 'FT_INVALID_HANDLE'.
Wenn ich das Device über FT_Open(0,&ftHandle) öffne, ist alles OK und 
ich kann weiterarbeiten.
Der Versuch das Device über 
FT_OpenEx(&loc_id[0],FT_OPEN_BY_LOCATION,&ftHandle)
zu öffnen, mündet im o.a. Fehler.
Die loc_id habe ich - wie von FTDI beschrieben mittels
FT_ListDevices(loc_id,&anz,FT_LIST_ALL | FT_OPEN_BY_LOCATION) ermittelt.
Ich habe mit FT_PROG die zurückgegebene Location-Id überprüft - diese 
stimmt überein.
Betriebssystem ist WIN XP SP3.

Hier der Codeausschnitt:

DWORD anz=0,loc_id[64];
FT_HANDLE ftHandle;

FT_STATUS ftStatus=FT_ListDevices(&anz,NULL,FT_LIST_NUMBER_ONLY);
if (ftStatus == FT_OK)
{
  ftStatus=FT_ListDevices(&loc_id,&anz,FT_LIST_ALL | 
FT_OPEN_BY_LOCATION);
}
if ((ftStatus == FT_OK) && (anz > 0))
{
  ftStatus = FT_OpenEx(&loc_id[0],FT_OPEN_BY_LOCATION,&ftHandle);
  //  ftStatus = FT_Open(0,&ftHandle);  //die Funktion geht
}
if ((ftStatus == FT_OK) && (anz > 0))
{
  if (ftHandle != FT_INVALID_HANDLE)
  {
    // hier gehts weiter
  }
  else
  {
    // hier ist ein Fehler aufgetreten
  }
}

Wo könnte der Fehler liegen?
Momentan benutze ich die FTD2XX.DLL in der Version 3.1.8.1

Gruß
TK

Autor: Ralf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist das Problem noch aktuell?

Kann es sein dass hier:
ftStatus = FT_OpenEx(&loc_id[0],FT_OPEN_BY_LOCATION,&ftHandle);
die Adresse des ersten Elements des loc_id-Arrays übergeben wird anstatt 
der Inhalt? Bin mir nicht sicher, wie C das genau handhabt. Ich meine 
mal gelesen zu haben, dass ein Array-Zugriff im Prinzip wie ein Pointer 
gehandhabt wird, aber mit dem '&' sagst du ja explizit, dass du die 
Adresse haben willst.

Ralf

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.