?? ftdi_sio.h
字號:
ftdi_sio_b19200 = 6, ftdi_sio_b38400 = 7, ftdi_sio_b57600 = 8, ftdi_sio_b115200 = 9} FTDI_SIO_baudrate_t ;/* * The ftdi_8U232AM_xxMHz_byyy constants have been removed. The encoded divisor values * are calculated internally. */#define FTDI_SIO_SET_DATA_REQUEST FTDI_SIO_SET_DATA#define FTDI_SIO_SET_DATA_REQUEST_TYPE 0x40#define FTDI_SIO_SET_DATA_PARITY_NONE (0x0 << 8 )#define FTDI_SIO_SET_DATA_PARITY_ODD (0x1 << 8 )#define FTDI_SIO_SET_DATA_PARITY_EVEN (0x2 << 8 )#define FTDI_SIO_SET_DATA_PARITY_MARK (0x3 << 8 )#define FTDI_SIO_SET_DATA_PARITY_SPACE (0x4 << 8 )#define FTDI_SIO_SET_DATA_STOP_BITS_1 (0x0 << 11 )#define FTDI_SIO_SET_DATA_STOP_BITS_15 (0x1 << 11 )#define FTDI_SIO_SET_DATA_STOP_BITS_2 (0x2 << 11 )#define FTDI_SIO_SET_BREAK (0x1 << 14)/* FTDI_SIO_SET_DATA *//* * BmRequestType: 0100 0000B * bRequest: FTDI_SIO_SET_DATA * wValue: Data characteristics (see below) * wIndex: Port * wLength: 0 * Data: No * * Data characteristics * * B0..7 Number of data bits * B8..10 Parity * 0 = None * 1 = Odd * 2 = Even * 3 = Mark * 4 = Space * B11..13 Stop Bits * 0 = 1 * 1 = 1.5 * 2 = 2 * B14 * 1 = TX ON (break) * 0 = TX OFF (normal state) * B15 Reserved * *//* FTDI_SIO_MODEM_CTRL */#define FTDI_SIO_SET_MODEM_CTRL_REQUEST_TYPE 0x40#define FTDI_SIO_SET_MODEM_CTRL_REQUEST FTDI_SIO_MODEM_CTRL/* * BmRequestType: 0100 0000B * bRequest: FTDI_SIO_MODEM_CTRL * wValue: ControlValue (see below) * wIndex: Port * wLength: 0 * Data: None * * NOTE: If the device is in RTS/CTS flow control, the RTS set by this * command will be IGNORED without an error being returned * Also - you can not set DTR and RTS with one control message */#define FTDI_SIO_SET_DTR_MASK 0x1#define FTDI_SIO_SET_DTR_HIGH ( 1 | ( FTDI_SIO_SET_DTR_MASK << 8))#define FTDI_SIO_SET_DTR_LOW ( 0 | ( FTDI_SIO_SET_DTR_MASK << 8))#define FTDI_SIO_SET_RTS_MASK 0x2#define FTDI_SIO_SET_RTS_HIGH ( 2 | ( FTDI_SIO_SET_RTS_MASK << 8 ))#define FTDI_SIO_SET_RTS_LOW ( 0 | ( FTDI_SIO_SET_RTS_MASK << 8 ))/* * ControlValue * B0 DTR state * 0 = reset * 1 = set * B1 RTS state * 0 = reset * 1 = set * B2..7 Reserved * B8 DTR state enable * 0 = ignore * 1 = use DTR state * B9 RTS state enable * 0 = ignore * 1 = use RTS state * B10..15 Reserved *//* FTDI_SIO_SET_FLOW_CTRL */#define FTDI_SIO_SET_FLOW_CTRL_REQUEST_TYPE 0x40#define FTDI_SIO_SET_FLOW_CTRL_REQUEST FTDI_SIO_SET_FLOW_CTRL#define FTDI_SIO_DISABLE_FLOW_CTRL 0x0 #define FTDI_SIO_RTS_CTS_HS (0x1 << 8)#define FTDI_SIO_DTR_DSR_HS (0x2 << 8)#define FTDI_SIO_XON_XOFF_HS (0x4 << 8)/* * BmRequestType: 0100 0000b * bRequest: FTDI_SIO_SET_FLOW_CTRL * wValue: Xoff/Xon * wIndex: Protocol/Port - hIndex is protocl / lIndex is port * wLength: 0 * Data: None * * hIndex protocol is: * B0 Output handshaking using RTS/CTS * 0 = disabled * 1 = enabled * B1 Output handshaking using DTR/DSR * 0 = disabled * 1 = enabled * B2 Xon/Xoff handshaking * 0 = disabled * 1 = enabled * * A value of zero in the hIndex field disables handshaking * * If Xon/Xoff handshaking is specified, the hValue field should contain the XOFF character * and the lValue field contains the XON character. */ /* * FTDI_SIO_SET_EVENT_CHAR * * Set the special event character for the specified communications port. * If the device sees this character it will immediately return the * data read so far - rather than wait 40ms or until 62 bytes are read * which is what normally happens. */#define FTDI_SIO_SET_EVENT_CHAR_REQUEST FTDI_SIO_SET_EVENT_CHAR#define FTDI_SIO_SET_EVENT_CHAR_REQUEST_TYPE 0x40/* * BmRequestType: 0100 0000b * bRequest: FTDI_SIO_SET_EVENT_CHAR * wValue: EventChar * wIndex: Port * wLength: 0 * Data: None * * wValue: * B0..7 Event Character * B8 Event Character Processing * 0 = disabled * 1 = enabled * B9..15 Reserved * */ /* FTDI_SIO_SET_ERROR_CHAR *//* Set the parity error replacement character for the specified communications port *//* * BmRequestType: 0100 0000b * bRequest: FTDI_SIO_SET_EVENT_CHAR * wValue: Error Char * wIndex: Port * wLength: 0 * Data: None * *Error Char * B0..7 Error Character * B8 Error Character Processing * 0 = disabled * 1 = enabled * B9..15 Reserved * *//* FTDI_SIO_GET_MODEM_STATUS *//* Retreive the current value of the modem status register */#define FTDI_SIO_GET_MODEM_STATUS_REQUEST_TYPE 0xc0#define FTDI_SIO_GET_MODEM_STATUS_REQUEST FTDI_SIO_GET_MODEM_STATUS#define FTDI_SIO_CTS_MASK 0x10#define FTDI_SIO_DSR_MASK 0x20#define FTDI_SIO_RI_MASK 0x40#define FTDI_SIO_RLSD_MASK 0x80/* * BmRequestType: 1100 0000b * bRequest: FTDI_SIO_GET_MODEM_STATUS * wValue: zero * wIndex: Port * wLength: 1 * Data: Status * * One byte of data is returned * B0..3 0 * B4 CTS * 0 = inactive * 1 = active * B5 DSR * 0 = inactive * 1 = active * B6 Ring Indicator (RI) * 0 = inactive * 1 = active * B7 Receive Line Signal Detect (RLSD) * 0 = inactive * 1 = active *//* Descriptors returned by the device * * Device Descriptor * * Offset Field Size Value Description * 0 bLength 1 0x12 Size of descriptor in bytes * 1 bDescriptorType 1 0x01 DEVICE Descriptor Type * 2 bcdUSB 2 0x0110 USB Spec Release Number * 4 bDeviceClass 1 0x00 Class Code * 5 bDeviceSubClass 1 0x00 SubClass Code * 6 bDeviceProtocol 1 0x00 Protocol Code * 7 bMaxPacketSize0 1 0x08 Maximum packet size for endpoint 0 * 8 idVendor 2 0x0403 Vendor ID * 10 idProduct 2 0x8372 Product ID (FTDI_SIO_PID) * 12 bcdDevice 2 0x0001 Device release number * 14 iManufacturer 1 0x01 Index of man. string desc * 15 iProduct 1 0x02 Index of prod string desc * 16 iSerialNumber 1 0x02 Index of serial nmr string desc * 17 bNumConfigurations 1 0x01 Number of possible configurations * * Configuration Descriptor * * Offset Field Size Value * 0 bLength 1 0x09 Size of descriptor in bytes * 1 bDescriptorType 1 0x02 CONFIGURATION Descriptor Type * 2 wTotalLength 2 0x0020 Total length of data * 4 bNumInterfaces 1 0x01 Number of interfaces supported * 5 bConfigurationValue 1 0x01 Argument for SetCOnfiguration() req * 6 iConfiguration 1 0x02 Index of config string descriptor * 7 bmAttributes 1 0x20 Config characteristics Remote Wakeup * 8 MaxPower 1 0x1E Max power consumption * * Interface Descriptor * * Offset Field Size Value * 0 bLength 1 0x09 Size of descriptor in bytes * 1 bDescriptorType 1 0x04 INTERFACE Descriptor Type * 2 bInterfaceNumber 1 0x00 Number of interface * 3 bAlternateSetting 1 0x00 Value used to select alternate * 4 bNumEndpoints 1 0x02 Number of endpoints * 5 bInterfaceClass 1 0xFF Class Code * 6 bInterfaceSubClass 1 0xFF Subclass Code * 7 bInterfaceProtocol 1 0xFF Protocol Code * 8 iInterface 1 0x02 Index of interface string description * * IN Endpoint Descriptor * * Offset Field Size Value * 0 bLength 1 0x07 Size of descriptor in bytes * 1 bDescriptorType 1 0x05 ENDPOINT descriptor type * 2 bEndpointAddress 1 0x82 Address of endpoint * 3 bmAttributes 1 0x02 Endpoint attributes - Bulk * 4 bNumEndpoints 2 0x0040 maximum packet size * 5 bInterval 1 0x00 Interval for polling endpoint * * OUT Endpoint Descriptor * * Offset Field Size Value * 0 bLength 1 0x07 Size of descriptor in bytes * 1 bDescriptorType 1 0x05 ENDPOINT descriptor type * 2 bEndpointAddress 1 0x02 Address of endpoint * 3 bmAttributes 1 0x02 Endpoint attributes - Bulk * 4 bNumEndpoints 2 0x0040 maximum packet size * 5 bInterval 1 0x00 Interval for polling endpoint * * DATA FORMAT * * IN Endpoint * * The device reserves the first two bytes of data on this endpoint to contain the current * values of the modem and line status registers. In the absence of data, the device * generates a message consisting of these two status bytes every 40 ms * * Byte 0: Modem Status * * Offset Description * B0 Reserved - must be 1 * B1 Reserved - must be 0 * B2 Reserved - must be 0 * B3 Reserved - must be 0 * B4 Clear to Send (CTS) * B5 Data Set Ready (DSR) * B6 Ring Indicator (RI) * B7 Receive Line Signal Detect (RLSD) * * Byte 1: Line Status * * Offset Description * B0 Data Ready (DR) * B1 Overrun Error (OE) * B2 Parity Error (PE) * B3 Framing Error (FE) * B4 Break Interrupt (BI) * B5 Transmitter Holding Register (THRE) * B6 Transmitter Empty (TEMT) * B7 Error in RCVR FIFO * */#define FTDI_RS0_CTS (1 << 4)#define FTDI_RS0_DSR (1 << 5)#define FTDI_RS0_RI (1 << 6)#define FTDI_RS0_RLSD (1 << 7)#define FTDI_RS_DR 1#define FTDI_RS_OE (1<<1)#define FTDI_RS_PE (1<<2)#define FTDI_RS_FE (1<<3)#define FTDI_RS_BI (1<<4)#define FTDI_RS_THRE (1<<5)#define FTDI_RS_TEMT (1<<6)#define FTDI_RS_FIFO (1<<7)/* * OUT Endpoint * * This device reserves the first bytes of data on this endpoint contain the length * and port identifier of the message. For the FTDI USB Serial converter the port * identifier is always 1. * * Byte 0: Line Status * * Offset Description * B0 Reserved - must be 1 * B1 Reserved - must be 0 * B2..7 Length of message - (not including Byte 0) * */
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -