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

📄 i2c.h

📁 ZLG MINIARM-N20源代码
💻 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 + -