📄 cp2101.h
字号:
// The following ifdef block is the standard way of creating macros which make exporting
// from a DLL simpler. All files within this DLL are compiled with the CP2101DLL_EXPORTS
// symbol defined on the command line. this symbol should not be defined on any project
// that uses this DLL. This way any other project whose source files include this file see
// CP2101DLL_API functions as being imported from a DLL, wheras this DLL sees symbols
// defined with this macro as being exported.
#ifdef CP2101DLL_EXPORTS
#define CP2101DLL_API __declspec(dllexport)
#else
#define CP2101DLL_API __declspec(dllimport)
#endif
// GetProductString() function flags
#define CP2101_RETURN_SERIAL_NUMBER 0x00
#define CP2101_RETURN_DESCRIPTION 0x01
#define CP2101_RETURN_FULL_PATH 0x02
// Return codes
#define CP2101_SUCCESS 0x00
#define CP2101_DEVICE_NOT_FOUND 0xFF
#define CP2101_INVALID_HANDLE 0x01
#define CP2101_INVALID_PARAMETER 0x02
#define CP2101_DEVICE_IO_FAILED 0x03
// Buffer size limits
#define CP2101_MAX_DEVICE_STRLEN 256
#define CP2101_MAX_PRODUCT_STRLEN 126
#define CP2101_MAX_SERIAL_STRLEN 63
#define CP2101_MAX_MAXPOWER 250
// Type definitions
typedef int CP2101_STATUS;
typedef char CP2101_DEVICE_STRING[CP2101_MAX_DEVICE_STRLEN];
typedef char CP2101_PRODUCT_STRING[CP2101_MAX_PRODUCT_STRLEN];
typedef char CP2101_SERIAL_STRING[CP2101_MAX_SERIAL_STRLEN];
//Baud Rate Aliasing definitions
#define NUM_BAUD_CONFIGS 32
typedef union
{
DWORD br;
//BYTE c[4];
} BAUD_RATE;
#define BR_BYTE0 0
#define BR_BYTE1 1
#define BR_BYTE2 2
#define BR_BYTE3 3
typedef struct
{
WORD BaudGen;
WORD Timer0Reload;
BYTE Prescaler;
BAUD_RATE BaudRate;
} BAUD_CONFIG;
#define BAUD_CONFIG_SIZE 10
typedef BAUD_CONFIG BAUD_CONFIG_DATA[NUM_BAUD_CONFIGS];
#ifdef __cplusplus
extern "C" {
#endif
CP2101DLL_API
CP2101_STATUS WINAPI CP2101_GetNumDevices(
LPDWORD lpdwNumDevices
);
CP2101DLL_API
CP2101_STATUS WINAPI CP2101_GetProductString(
DWORD dwDeviceNum,
LPVOID lpvDeviceString,
DWORD dwFlags
);
CP2101DLL_API
CP2101_STATUS WINAPI CP2101_Open(
DWORD dwDevice,
HANDLE* cyHandle
);
CP2101DLL_API
CP2101_STATUS WINAPI CP2101_Close(
HANDLE cyHandle
);
CP2101DLL_API
CP2101_STATUS
WINAPI
CP2101_SetVid(
HANDLE cyHandle,
WORD wVid
);
CP2101DLL_API
CP2101_STATUS
WINAPI
CP2101_SetPid(
HANDLE cyHandle,
WORD wPid
);
CP2101DLL_API
CP2101_STATUS
WINAPI
CP2101_SetProductString(
HANDLE cyHandle,
LPVOID lpvProduct,
BYTE bLength,
BOOL bConvertToUnicode = TRUE
);
CP2101DLL_API
CP2101_STATUS
WINAPI
CP2101_SetSerialNumber(
HANDLE cyHandle,
LPVOID lpvSerialNumber,
BYTE bLength,
BOOL bConvertToUnicode = TRUE
);
CP2101DLL_API
CP2101_STATUS
WINAPI
CP2101_SetSelfPower(
HANDLE cyHandle,
BOOL bSelfPower
);
CP2101DLL_API
CP2101_STATUS
WINAPI
CP2101_SetMaxPower(
HANDLE cyHandle,
BYTE bMaxPower
);
CP2101DLL_API
CP2101_STATUS
WINAPI
CP2101_SetDeviceVersion(
HANDLE cyHandle,
WORD wVersion
);
CP2101DLL_API
CP2101_STATUS
WINAPI
CP2101_GetDeviceProductString(
HANDLE cyHandle,
LPVOID lpProduct,
LPBYTE lpbLength,
BOOL bConvertToASCII = TRUE
);
CP2101DLL_API
CP2101_STATUS
WINAPI
CP2101_GetDeviceSerialNumber(
HANDLE cyHandle,
LPVOID lpSerialNumber,
LPBYTE lpbLength,
BOOL bConvertToASCII = TRUE
);
CP2101DLL_API
CP2101_STATUS
WINAPI
CP2101_GetDeviceVid(
HANDLE cyHandle,
LPWORD lpwVid
);
CP2101DLL_API
CP2101_STATUS
WINAPI
CP2101_GetDevicePid(
HANDLE cyHandle,
LPWORD lpwPid
);
CP2101DLL_API
CP2101_STATUS
WINAPI
CP2101_GetSelfPower(
HANDLE cyHandle,
LPBOOL lpbSelfPower
);
CP2101DLL_API
CP2101_STATUS
WINAPI
CP2101_GetMaxPower(
HANDLE cyHandle,
LPBYTE lpbPower
);
CP2101DLL_API
CP2101_STATUS
WINAPI
CP2101_GetDeviceVersion(
HANDLE cyHandle,
LPWORD lpwVersion
);
CP2101DLL_API
CP2101_STATUS
WINAPI
CP2101_Reset(
HANDLE cyHandle
);
CP2101DLL_API
CP2101_STATUS
WINAPI
CP2101_GetBaudRateConfig(
HANDLE cyHandle,
BAUD_CONFIG* baudConfigData
);
CP2101DLL_API
CP2101_STATUS
WINAPI
CP2101_SetBaudRateConfig(
HANDLE cyHandle,
BAUD_CONFIG* baudConfigData
);
CP2101DLL_API
CP2101_STATUS
WINAPI
CP2101_SetLockValue(
HANDLE cyHandle
//BYTE bLockValue;
);
CP2101DLL_API
CP2101_STATUS
WINAPI
CP2101_GetLockValue( HANDLE cyHandle,
LPBYTE lpbLockValue
);
CP2101DLL_API
CP2101_STATUS
WINAPI
CP2101_GetPartNumber( HANDLE cyHandle,
LPBYTE lpbPartNum
);
#ifdef __cplusplus
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -