Forum: PC-Programmierung FTDI (FTD2232H) über I2C ansteuern.


von Toni (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

ich versuche das Sample Programm von

https://www.ftdichip.com/Support/SoftwareExamples/MPSSE.htm  --> 
Abschnitt: USB to I2C

über mingw zum laufen zu kriegen. Ich vefolge die Anleitung, die in dem 
Zip-File enthalten ist.

Wenn ich nun die b.bat Datei ausführe und ich die sample-dynamic.exe 
ausführe, sagt mit das System folgendes.

Failed loading libMPSSE.dll. Please check if the file exists in the 
working directory
sample-dynamic.c:255:main(): NULL expression            encountered

Es ist mingw 4.5.x installiert und die D2XXX Treiber sind auch 
installiert.


Ich hoffe ihr könnt mir helfen.

Viele Grüße
Toni

PS: Im Anhang habe ich

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

In Deinem Zip-Archiv ist nur eine 32-Bit-Version der DLL. Deinen 
Compiler hast Du so eingestellt, daß er ein 32-Bit-Programm erzeugt?

von Toni (Gast)


Lesenswert?

Hallo,

ja ich baue das Programm mit x86.

von Toni (Gast)


Lesenswert?

besser gesagt ich füge der b.bat folgenden Tag hinzu

gcc -m32

um mit 32bit zu kompilieren.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Und Du hast die DLL aus dem Archiv auch irgendwo hinkopiert?

Die Fehlermeldung, die Du da zitierst, besagt, daß die DLL nicht 
gefunden würde:

> Failed loading libMPSSE.dll. Please check if the file exists in the working 
directory

Und sie schlägt sogar vor, wo Du nachsehen sollst.

von Toni (Gast)


Lesenswert?

Ja die libMPSSE.dll befindet sich in der working directory. Die b.bat 
kopiert sämtliche files in den Ordner I2C (Working directory) und baut 
dort auch die .exe (sample-dynamic.exe und/oder sample-static.exe)

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Ändere folgenden Code
1
#ifdef _WIN32
2
  #ifdef _MSC_VER
3
    h_libMPSSE = LoadLibrary(L"libMPSSE.dll");
4
  #else
5
    h_libMPSSE = LoadLibrary("libMPSSE.dll");
6
  #endif
7
  if(NULL == h_libMPSSE)
8
  {
9
    printf("Failed loading libMPSSE.dll. Please check if the file exists in\
10
 the working directory\n");
11
  }

hierin die printf-Anweisung wie folgt:
1
  printf("Failed loading libMPSSE.dll. Please check if the file exists in\
2
 the working directory (%d)\n", GetLastError());

Interessant ist hier der Fehlercode.

: Bearbeitet durch User
von Toni (Gast)


Lesenswert?

Ich habe es mal auf einer Windows 10 Maschine getestet. Funktioniert 
problemlos.

FTDI habe ich auch schon angeschrieben. Der Support hat eine neue 
library bereitgestellt.

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.