📄 i2cdrv.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 + -