⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 i2c.h

📁 SM501基于ARMV4/ARMV4I平台
💻 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 + -