📄 i2c.h
字号:
/****************************************Copyright (c)****************************************************
** Guangzhou ZHIYUAN electronics Co.,LTD.
**
** http://www.embedtools.com
**
**--------------File Info---------------------------------------------------------------------------------
** File name: I2C_Config.h
** Last modified Date: 2007-07-01
** Last Version: 1.0
** Descriptions: I2C通用驱动程序
**--------------------------------------------------------------------------------------------------------
** Created by: LinEnqiang
** Created date: 2007-07-01
** Version: 1.00
** Descriptions: The original version
**--------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
** Version:
** Descriptions:
*********************************************************************************************************/
#ifndef _I2CCONFIG_H_
#define _I2CCONFIG_H_
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
/*********************************************************************************************************
-I2C 标示
*********************************************************************************************************/
#define I2C0 0
/*********************************************************************************************************
I2C中断通道号
*********************************************************************************************************/
#define I2C0_IRQ_CHN 9
#define WR_BYTES 0 /* 获得未 写 完的数据个数命令 */
#define RD_BYTES 1 /* 获得未 读 完的数据个数命令 */
/*********************************************************************************************************
I2C 子地址类型
*********************************************************************************************************/
#define NON_BYTE_SADDR 0 /* 无子地址 */
#define ONE_BYTE_SADDR 1 /* 一个字节子地址 */
#define TWO_BYTE_SADDR 2 /* 两个字节子地址 */
/*********************************************************************************************************
驱动库函数操作返回值
*********************************************************************************************************/
#define I2C_OK 1 /* 初始化操作成功 */
#define I2C_NOK 0 /* 初始化操作失败 */
#define I2C_BUSY 0 /* I2C忙 */
#define I2C_WRITE_END 1 /* 写完成 */
#define I2C_READ_END 2 /* 读完成 */
#define I2C_NOT_GET_BUS 4 /* 丢失仲裁 */
#define I2C_ACK_ERR 8 /* 接收ACK错误 */
#define I2C_IDLE 3 /* I2C空闲 */
#ifndef _IN_I2C
/*********************************************************************************************************
** Function name: I2cInit
**
** Descriptions: I2c初始化
**
** input parameters: ID : I2C设备标示
** Arg : 配置参数字符窜指针
** Rsv : 预留参数
** Returned value: 操作成功 : I2C_OK
** 操作失败 : I2C_NOK
*********************************************************************************************************/
extern int32 I2cInit(uint32 ID,char *Arg,void *Rsv);
/*********************************************************************************************************
** Function name: I2cWrite
** Descriptions: 向I2C从器件写数据
** input parameters: ID : I2C设备标示
* Addr : 从机地址
** Sub_Addr : 从机内部起始子地址
** Sub_Addr_Type : 从机内部子地址类型 ---- 0: 无子地址; 1: 单字节地址; 2: 双字节地址;
** pRet : 待发送数据存储位置的指针
** WrNbyte : 写数据长度
** Returned value: 成功写数据长度
**
********************************************************************************************************/
extern int32 I2cWrite( uint32 ID,
uint8 Addr,
uint8* Sub_Addr,
uint16 Sub_Addr_Type,
uint8* pRet,
uint32 WrNbyte);
/*********************************************************************************************************
** Function name: I2cRead
**
** Descriptions: 从I2C从器件读数据
**
** input parameters: ID : I2C设备标示
** Addr : 从机地址
** Sub_Addr : 从机内部子地址存放指针
** Sub_Addr_Type : 从机内部子地址类型 ---- 0: 无子地址; 1: 单字节地址; 2: 双字节地址
** pRet : 指向返回数据存储位置的指针
** RdNbyte : 数据长度
** Returned value: 成功读取数据长度
********************************************************************************************************/
extern int32 I2cRead( uint32 ID,
uint8 Addr,
uint8* Sub_Addr,
uint16 Sub_Addr_Type,
uint8* pRet,
uint32 RdNbyte);
/*********************************************************************************************************
** Function name: I2cGetFlag
**
** Descriptions: 获取I2C总线状态
**
** input parameters: ID : I2C设备标示
** Returned value: I2C_BUSY : 忙
** I2C_WRITE_END : 写完成
** I2C_READ_END : 读完成
** I2C_NOT_GET_BUS: 丢失仲裁
** I2C_ACK_ERR : 接收ACK错误
I2C_IDLE : 空闲
********************************************************************************************************/
extern int32 I2cGetFlag(uint8 ID);
/*********************************************************************************************************
** Function name: I2cGetRemainBytes
**
** Descriptions: 获得剩余的数据个数
**
** input parameters: ID : I2C设备标示
** Flag: WR_BYTES -- 写操作的数据
** RD_BYTES -- 读操作的数据
** Returned value: 剩余的数据个数
********************************************************************************************************/
extern uint16 I2cGetRemainBytes(uint8 ID,uint8 Flag);
#endif
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif /* _I2CCONFIG_H_ */
/*********************************************************************************************************
END FILE
*********************************************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -