Вот код програмки для установки параметра. Но что то она не пашет.
Код
// setbit.cpp: определяет точку входа для консольного приложения.
//
#include "stdafx.h"
#include "ftd2xx.h"
void getlist ()
{
FT_STATUS ftStatus;
FT_HANDLE ftHandleTemp;
DWORD numDevs;
DWORD Flags;
DWORD ID;
DWORD Type;
DWORD LocId;
char SerialNumber[16];
char Description[64];
// create the device information list
ftStatus = FT_CreateDeviceInfoList(&numDevs);
if (ftStatus == FT_OK) {
printf("Number of devices is %d\n",numDevs);
}
if (numDevs > 0) {
// get information for device 0
ftStatus = FT_GetDeviceInfoDetail(0, &Flags, &Type, &ID, &LocId, SerialNumber, Description, &ftHandleTemp);
if (ftStatus == FT_OK) {
printf("Dev 0:\n");
printf(" Flags=0x%x\n",Flags);
printf(" Type=0x%x\n",Type);
printf(" ID=0x%x\n",ID);
printf(" LocId=0x%x\n",LocId);
printf(" SerialNumber=%s\n",SerialNumber);
printf(" Description=%s\n",Description);
printf(" ftHandle=0x%x\n",ftHandleTemp);
}
}
}
int setbit(unsigned char mode)
{
int ret;
FT_HANDLE ftHandle;
FT_STATUS ftStatus;
UCHAR Mask = 0xff;
UCHAR Mode = mode; // Set mode
UCHAR BitMode;
ftStatus = FT_Open(0, &ftHandle);
if(ftStatus != FT_OK) {
// FT_Open failed
puts("FT_Open failed");
return -1;
}
ftStatus = FT_GetBitMode(ftHandle, &BitMode);
if (ftStatus == FT_OK) {
// BitMode contains current value
printf("FT_GetBitMode return 0x%02X\n", BitMode);
} else {
// FT_GetBitMode FAILED!
puts("FT_GetBitMode FAILED!");
}
ftStatus = FT_SetBitMode(ftHandle, Mask, Mode);
if (ftStatus == FT_OK) {
// 0xff written to device
printf("FT_SetBitMode 0x%02X written to device\n", Mode);
ret = 0;
} else {
// FT_SetBitMode FAILED!
puts("FT_SetBitMode FAILED!");
ret = -1;
}
ftStatus = FT_GetBitMode(ftHandle, &BitMode);
if (ftStatus == FT_OK) {
// BitMode contains current value
printf("FT_GetBitMode return 0x%02X\n", BitMode);
} else {
// FT_GetBitMode FAILED!
puts("FT_GetBitMode FAILED!");
}
FT_Close(ftHandle);
return ret;
}
#define MODE 0x40
int _tmain(int argc, _TCHAR* argv[])
{
printf("start MODE = 0x%X\n", MODE);
getlist();
setbit(MODE);
getchar();
return 0;
}