#include<windows.h> #include<stdio.h> #include<time.h> #include "ftd2xx.h" #pragma comment(lib, "ftd2xx.lib") int main(void) { char dbuf[64]; FT_ListDevices(0, dbuf, FT_LIST_BY_INDEX | FT_OPEN_BY_DESCRIPTION); printf("%s\n", dbuf); FT_STATUS ftStatus; FT_HANDLE ftHandle; ftStatus = FT_OpenEx(dbuf, FT_OPEN_BY_DESCRIPTION, &ftHandle); if(ftStatus!=FT_OK){ printf("Failed to open port\n"); return 0; } FT_ResetDevice(ftHandle); FT_Purge(ftHandle, FT_PURGE_RX | FT_PURGE_TX); FT_SetTimeouts(ftHandle, NULL, NULL); ftStatus = FT_SetBaudRate(ftHandle, FT_BAUD_921600); if(ftStatus!=FT_OK){ printf("Failed to set BaudRate\n"); } ftStatus = FT_SetBitMode(ftHandle, 0xFF/*1=out 0=in*/, 1/*bit-bang mode on*/); if(ftStatus!=FT_OK){ printf("Failed to set bit mode\n"); } int i; int total = 0; const int size = 62*16; unsigned char buf[size]; DWORD send_size; FT_STATUS ftTxStatus; for(i=0; i<size; i++) buf[i] = rand(); buf[size-1] = 0; clock_t st, et; st = clock(); for(i=0; i<10; i++){ ftTxStatus = FT_Write(ftHandle, buf, size, &send_size); if(ftTxStatus!=FT_OK){ printf("send err\n"); } if(send_size!=size){ printf("send err\n"); } total += size; } et = clock(); clock_t u = et - st; double s = u / 1000.0; printf("%0.1f Kbps\n", total/s/1024); FT_Close(ftHandle); return 0; }