www.pudn.com > uCOS_I2C.rar > I2C.h


 
#define	ONE_BYTE_SUBA	1 
#define TWO_BYTE_SUBA	2 
#define X_ADD_8_SUBA	3 
 
/****************************************Copyright (c)************************************************** 
**                              四川唐门高新技术开发有限公司 
**                                     研    发    部 
**                                独门暗器之孔雀翎研究室  
** 
**                                http://www.蜀中唐门.com 
** 
**                                   维护健康 信守诚诺 
** 
**--------------文件信息-------------------------------------------------------------------------------- 
**文   件   名: I2c.c 
**创   建   人: 赖皮  
**最后修改日期: 2006年12月21日 
**描        述: μCOS-II下LPC213x的I2c主模式底层驱动  
**               
**--------------历史版本信息---------------------------------------------------------------------------- 
** 创建人: 赖皮  
** 版  本: v1.0 
** 日 期: 2006年12月8日 
** 描 述: 结合ZLG中断方式和uC中间件创建原始版本 
** 
**------------------------------------------------------------------------------------------------------ 
** 修改人: 赖皮  
** 版  本: v1.1 
** 日 期: 2006年12月21日 
** 描 述: 采用信号量满足互斥操作 
** 
**--------------当前版本修订------------------------------------------------------------------------------ 
** 修改人: 赖皮 
** 版  本: v2.0 
** 日 期: 2007年01月26日 
** 描 述: 结合中断方式   根据ATPCS优化原则  减少读写参数 4 
**         原来由邮箱传递更改为查询方式  增加配置文件I2Ccfg.h便于移植 
**------------------------------------------------------------------------------------------------------ 
******************************************************************************************************** 
**--------------当前版本修订------------------------------------------------------------------------------ 
** 修改人:  
** 版  本:  
** 日 期:  
** 描 述:   
**    
**          LAI2005PI@126.com       
**------------------------------------------------------------------------------------------------------ 
********************************************************************************************************/ 
 
/* 
********************************************************************************************************* 
** 函数名称 :I2cInit() 
** 函数功能 :I2C初始化 
** 入口参数 :Fi2c	I2C总线频率(最大400K) 
** 出口参数 :无 
********************************************************************************************************* 
*/  
extern void I2cInit(uint32 Fi2c); 
/* 
********************************************************************************************************** 
** 函数名称:ISendByte() 
** 函数功能:向无子地址器件发送1字节数据。 
** 入口参数:sla		器件地址 
**           dat		要发送的数据 
** 出口参数:返回值为0时表示出错,为1时表示操作正确。 
** 说明:	使用前要初始化好I2C引脚功能和I2C中断,并已使能I2C主模式 
********************************************************************************************************* 
*/ 
extern uint8  ISendByte(uint8 sla, uint8 dat); 
/* 
********************************************************************************************************* 
** 函数名称:IRcvByte() 
** 函数功能:向无子地址器件读取1字节数据。 
** 入口参数:sla		器件地址 
**           dat		接收数据的变量指针 
** 出口参数:返回值为0时表示操作出错,为1时表示操作正确。 
** 说明:使用前要初始化好I2C引脚功能和I2C中断,并已使能I2C主模式 
********************************************************************************************************* 
*/ 
extern  uint8  IRcvByte(uint8 sla, uint8 *dat); 
/* 
********************************************************************************************************* 
** 函数名称 :I2C_ReadNByte() 
** 函数功能 :从有子地址器件任意地址开始读取N字节数据 
** 入口参数 :	sla			器件从地址 
**				suba_type	子地址结构	1-单字节地址	2-8+X结构	2-双字节地址 
**				suba		器件子地址 
**				s			数据接收缓冲区指针 
**				num			读取的个数 
** 出口参数 :	TRUE		操作成功 
**				FALSE		操作失败 
********************************************************************************************************* 
*/ 
extern uint8 I2C_ReadNByte (uint8 sla,uint32 suba, uint8 *s, uint32 num); 
/* 
********************************************************************************************************* 
** 函数名称 :I2C_WriteNByte() 
** 函数功能 :向有子地址器件写入N字节数据 
** 入口参数 :	sla			器件从地址 
**				suba_type	子地址结构	1-单字节地址	3-8+X结构	2-双字节地址 
**			  	suba		器件内部物理地址 
**			  	*s			将要写入的数据的指针 
**			  	num			将要写入的数据的个数 
** 出口参数 :	TRUE		操作成功 
**			  	FALSE		操作失败 
********************************************************************************************************* 
*/ 
extern uint8 I2C_WriteNByte(uint8 sla,uint32 suba, uint8 *s, uint32 num); 
/* 
********************************************************************************************************* 
** 函数名称 :__irq IRQ_I2C() 
** 函数名次 :硬件I2C中断服务程序。  
** 入口参数 :无 
** 出口参数 :无 
** 说明     :注意处理子地址为2字节的情况。  
********************************************************************************************************* 
*/ 
extern void IRQ_I2C(void);