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);