📄 i2c.h
字号:
//-----------------------------------------------------------------------------
//
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
// PARTICULAR PURPOSE.
// Copyright (c) 2003 Silicon Motion, Inc.
//
// Module Name: i2c.cpp
//
// Abstract: I2C API
//
//-----------------------------------------------------------------------------
#ifndef _I2C_H_
#define _I2C_H_
///////////////////////////////////////////////////////////////////////////////
// I2C return results.
typedef enum _VGXI2C_RESULTS
{
VGXI2C_SUCCESS = 1, // Success
VGXI2C_INVALID_PARAMETER = -1, // Invalid API parameters
VGXI2C_NO_ACKNOWLEDGE = -2, // 'No Acknowledge' bus condition
VGXI2C_BUS_ERROR = -3, // 'Bus Error' bus condition
VGXI2C_BUS_BUSY = -4, // 'Bus Busy' bus condition
VGXI2C_UNKNOWN_STATE = -5, // Int received, but status not set
VGXI2C_READ_TIMEOUT = -6, // No interrupt received while reading
VGXI2C_WRITE_TIMEOUT = -7, // No interrupt received while writing
VGXI2C_INT_NOT_SUPPORTED = -8, // Driver does not support interrupts
VGXI2C_WAIT_FAILED = -9, // Int wait function failed
VGXI2C_INTERRUPT_FAILED = -10, // Failed to register the I2C interrupt
VGXI2C_NOT_INITIALIZED = -11 // I2C has not been initialized
}
VGXI2C_RESULTS, *PVGXI2C_RESULTS;
///////////////////////////////////////////////////////////////////////////////
// Command constants for use with Esc-structures.
typedef enum _VGXI2C_COMMANDS
{
VGXI2CCMD_OPEN,
VGXI2CCMD_CLOSE,
VGXI2CCMD_READ,
VGXI2CCMD_WRITE
}
VGXI2C_COMMANDS, *PVGXI2C_COMMANDS;
///////////////////////////////////////////////////////////////////////////////
// Structures used in ExtEscape calls to access I2C API.
typedef struct _VGXI2C_STRUCT
{
VGXI2C_COMMANDS Command; // One of VGXI2C_COMMANDS
}
VGXI2C_STRUCT, *PVGXI2C_STRUCT;
typedef struct _VGXI2C_OPEN_STRUCT
{
VGXI2C_COMMANDS Command; // = VGXI2CCMD_OPEN
BOOL bFastMode; // Fast mode enable
BOOL bRepStart; // Repeated start enable
}
VGXI2C_OPEN_STRUCT, *PVGXI2C_OPEN_STRUCT;
typedef struct _VGXI2C_TRANSFER_STRUCT
{
VGXI2C_COMMANDS Command; // = VGXI2CCMD_READ or VGXI2CCMD_WRITE
BYTE byAddress; // Slave address
DWORD dwCount; // Number of bytes to be read
// BYTE Array[]; // Data
}
VGXI2C_TRANSFER_STRUCT, *PVGXI2C_TRANSFER_STRUCT;
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -