Hallo zusammen,
also Kompiliert habe ich es mit dem Visual Studio 6.0...
Dies ist ein sehr einfaches Programm welches nach meiner Meinung nach nicht gerade ideal ist. Es funktioniert zwar einwandfrei aber man sollte die Timeoutmethode von FTDI ersetzen und durch ein eigenständiges Thread das man selber programmiert hat einfügen.
Oder eine andere Möglichkeit ist es mit einem eigenenständigen Thread die Funktion readFTDI aufrufen so hat man keine Probleme mit der Systemauslastung.
Auserdem gibt es von FTDI eine hervoragende API.
--> Nicht vergessen die Library einzubinden...<--
Code:
includes:
#include "stdio.h"
#include "stdafx.h"
#include "ftd2xx.h"
globale Variabeln:
T_HANDLE ftHandle;
void USB::openFTDI()
{
FT_STATUS ftStatus;
ftStatus = FT_Open(0,&ftHandle);
if(ftStatus == FT_OK)
{
printf("CONNECTED\n");
}
else
{
printf("NOT CONNECTED\n");
}
}
void USB::closeFTDI()
{
FT_STATUS ftStatus;
ftStatus = FT_Close(ftHandle);
if(ftStatus == FT_OK)
{
printf("DISCONNECTED\n");
}
else
{
printf("NOT DISCONNECTED\n");
}
}
void USB::readFTDI()
{
FT_STATUS ftStatus;
DWORD RxBytes = 10;
DWORD BytesReceived;
unsigned char RxBuffer[256];
FT_SetTimeouts(ftHandle,5000,0);
ftStatus = FT_Read(ftHandle,RxBuffer,RxBytes,&BytesReceived);
if(ftStatus == FT_OK)
{
if(BytesReceived == RxBytes)
{
for(int i = 0 ; i < int(BytesReceived) ; i++)
{
printf("%d \n",RxBuffer[i]);
}
}
else
{
printf("no value was writen on the bus\n");
}
}
else
{
printf("can not read FTDI chip\n");
}
}
viel Spass daran, hoffe es bringt euch weiter sonst fragt...
Lesezeichen