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

📄 i2cdrv.h

📁 hreadx实时嵌入式操作系统源代码,ARM移植. threadx是一个很好的多任务实时嵌入式操作系统
💻 H
字号:
/****************************************Copyright (c)****************************************************
**                            Guangzhou ZHIYUAN electronics Co.,LTD.
**                                      
**                                 http://www.embedtools.com
**
**--------------File Info---------------------------------------------------------------------------------
** File name:               i2cDrv.h
** Last modified Date:      2007-12-05
** Last Version:            1.0.0
** Descriptions:            2440 I2C 驱动
**
**--------------------------------------------------------------------------------------------------------
** Created by:              Hanhui
** Created date:            2007-12-05
** Version:                 1.0.0
** Descriptions:            2440 I2C 驱动
**
**--------------------------------------------------------------------------------------------------------
** Modified by:             
** Modified date:           
** Version:                 
** Descriptions:            
**
*********************************************************************************************************/

#ifndef __I2CDRV_H
#define __I2CDRV_H

#include "i2cCfg.h"                                                     /*  I2C 配置文件                */
#include "i2cBus.h"
#include "i2cDev.h"

/*********************************************************************************************************
  I2C 命令定义 (仅支持主模式)
*********************************************************************************************************/

#define I2C_SET_ADDR            16                                      /*  设置目的地址                */
#define I2C_GET_ADDR            17                                      /*  获得目的地址                */

#define I2C_SET_SUB_ADDR        18                                      /*  设置目的子地址              */
#define I2C_GET_SUB_ADDR        19                                      /*  获得目的子地址              */

#define I2C_SET_MODE            20                                      /*  设置工作模式                */ 
#define I2C_GET_MODE            21                                      /*  获得工作模式                */

#define I2C_SET_BPS             22                                      /*  设置总线速度                */
#define I2C_GET_BPS             23                                      /*  获得总线速度                */

#define I2C_SET_WAIT_TICKS      24                                      /*  设置写后等待时间            */
#define I2C_GET_WAIT_TICKS      25                                      /*  获得读后等待时间            */

/*********************************************************************************************************
  I2C 设备子地址类型, 用于 ioctl 函数的 arg 参数
*********************************************************************************************************/

typedef struct {

    unsigned char       ucSubAddrArry[I2C_MAX_SUBADDRS];                /*  器件子地址                  */
    unsigned char       ucSubAddrNum;                                   /*  子地址数量                  */
    
} I2C_SUB_ADDR;

/*********************************************************************************************************
  I2C 新版设备 API 函数
*********************************************************************************************************/
/*********************************************************************************************************
** Function name:           i2cBusInit
** Descriptions:            初始化所有 I2C 总线
** input parameters:        NONE
** output parameters:       NONE
** Returned value:          NONE
*********************************************************************************************************/
void  i2cBusInit(void);

/*********************************************************************************************************
** Function name:           i2cDevOpen
** Descriptions:            打开指定 I2C 总线上的一个设备
** input parameters:        pi2cdevDevice   设备控制块
**                          uiChannel       总线通道号
**                          ucDevAddr       器件地址
**                          iBps            总线速率
** output parameters:       NONE
** Returned value:          -1 表示错误   0 表示正确
*********************************************************************************************************/
int  i2cDevOpen(PI2C_DEV       pi2cdevDevice,
                unsigned int   uiChannel, 
                unsigned char  ucDevAddr,
                int            iBps);
                
/*********************************************************************************************************
** Function name:           i2cDevClose
** Descriptions:            关闭指定 I2C 总线上的一个设备
** input parameters:        pi2cdevDevice   设备控制块
** output parameters:       NONE
** Returned value:          -1 表示错误   0 表示正确
*********************************************************************************************************/
int  i2cDevClose(PI2C_DEV  pi2cdevDevice);

/*********************************************************************************************************
** Function name:           i2cDevRead
** Descriptions:            以主方式从 I2C 接口读取数据
** input parameters:        pi2cdevDevice   设备控制块
**                          pcBuffer        缓冲区
**                          uiMaxBytes      读取字节数
** output parameters:       NONE
*********************************************************************************************************/
int  i2cDevRead(PI2C_DEV       pi2cdevDevice, 
                char          *pcBuffer, 
                unsigned int   uiMaxBytes);
                
/*********************************************************************************************************
** Function name:           i2cDevWrite
** Descriptions:            以主方式向 I2C 接口写入数据
** input parameters:        pi2cdevDevice   设备控制块
**                          pcBuffer        缓冲区
**                          iNBytes         字节数
** output parameters:       NONE
** Returned value:          -1 表示错误   0 表示正确
*********************************************************************************************************/
int  i2cDevWrite(PI2C_DEV       pi2cdevDevice, 
                 char          *pcBuffer, 
                 int            iNBytes);
                 
/*********************************************************************************************************
** Function name:           i2cDevIoctl
** Descriptions:            以主方式向 I2C 接口写入数据
** input parameters:        pi2cdevDevice   设备控制块
**                          pcBuffer        缓冲区
**                          iNBytes         字节数
** output parameters:       NONE
** Returned value:          -1 表示错误   0 表示正确
*********************************************************************************************************/
int  i2cDevIoctl(PI2C_DEV       pi2cdevDevice,
                 int            iCommand,
                 int            iArg);

/*********************************************************************************************************
  I2C 老版本兼容 API 函数
*********************************************************************************************************/
/*********************************************************************************************************
** Function name:           i2cInit
** Descriptions:            初始化 I2C
** input parameters:        iBps        时钟速度
** output parameters:       NONE
** Returned value:          NONE
*********************************************************************************************************/
void  i2cInit(int  iBps);

/*********************************************************************************************************
** Function name:           i2cRecv
** Descriptions:            I2C 总线接收
** input parameters:        ucDevAddr       器件地址
**                          pucSubAddrArry  子地址数组
**                          ucSubAddrNum    子地址数量
**                          pucRecvBuffer   接收缓冲区
**                          iNum            期望接收的数目
** output parameters:       NONE
** Returned value:          NONE
*********************************************************************************************************/
int  i2cRecv(unsigned char   ucDevAddr,
             unsigned char  *pucSubAddrArry,
             unsigned char   ucSubAddrNum,
             unsigned char  *pucRecvBuffer,
             unsigned int    iNum);

/*********************************************************************************************************
** Function name:           i2cSend
** Descriptions:            I2C 总线发送
** input parameters:        ucDevAddr       器件地址
**                          pucSubAddrArry  子地址数组
**                          ucSubAddrNum    子地址数量
**                          pucRecvBuffer   发送缓冲区
**                          iNum            发送数目
** output parameters:       NONE
** Returned value:          NONE
*********************************************************************************************************/
int  i2cSend(unsigned char   ucDevAddr,
             unsigned char  *pucSubAddrArry,
             unsigned char   ucSubAddrNum,
             unsigned char  *pucSendBuffer,
             unsigned int    iNum);

/*********************************************************************************************************
** Function name:           i2cSetBps
** Descriptions:            设置 I2C 总线速度
** input parameters:        iBps        时钟速度
** output parameters:       NONE
** Returned value:          NONE
*********************************************************************************************************/
void  i2cSetBps(int  iBps);

#endif                                                                  /*  __I2CDRV_H                  */
/*********************************************************************************************************
  END FILE
*********************************************************************************************************/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -