An FTD2XX device is an FT232R USB UART, FT245R USB FIFO, FT2232C Dual USB UART/FIFO, FT232BM USB UART, FT245BM USB FIFO, FT8U232AM USB UART or FT8U245AM USB FIFO interfacing to Windows application software using FTDIs WDM driver FTD2XX.SYS. The FTD2XX.SYS driver has a programming interface exposed by the dynamic link library FTD2XX.DLL and this document describes that interface.
FT_ListDevices returns information about the FTDI devices currently connected. In a system with multiple devices this can be used to decide which of the devices the application software wishes to access (using FT_OpenEx below).
Before the device can be accessed, it must first be opened. FT_Open and FT_OpenEx return a handle that is used by all functions in the Classic Programming Interface to identify the device. When the device has been opened successfully, I/O can be performed using FT_Read and FT_Write. When operations are complete, the device is closed using FT_Close.
Once opened, additional functions are available to reset the device (FT_ResetDevice); purge receive and transmit buffers (FT_Purge); set receive and transmit timeouts (FT_SetTimeouts); get the receive queue status (FT_GetQueueStatus); get the device status (FT_GetStatus); set and reset the break condition (FT_SetBreakOn, FT_SetBreakOff); and set conditions for event notification (FT_SetEventNotification).
For FT232R devices, FT2232C devices used in UART mode, FT232BM and FT8U232AM devices, functions are available to set the Baud rate (FT_SetBaudRate), and set a non-standard Baud rate (FT_SetDivisor); set the data characteristics such as word length, stop bits and parity (FT_SetDataCharacteristics); set hardware or software handshaking (FT_SetFlowControl); set modem control signals (FT_SetDtr, FT_ClrDtr, FT_SetRts, FT_ClrRts); get modem status (FT_GetModemStatus); set special characters such as event and error characters (FT_SetChars).
For FT245R devices, FT2232C devices used in FIFO mode, FT245BM and FT8U245AM devices, these functions are redundant and can effectively be ignored.
Type definitions of the functional parameters and return codes used in the D2XX classic programming interface are contained in the appendix.