📄 i2cold.c
字号:
/****************************************Copyright (c)****************************************************
** Guangzhou ZHIYUAN electronics Co.,LTD.
**
** http://www.embedtools.com
**
**--------------File Info---------------------------------------------------------------------------------
** File name: i2cOld.c
** 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:
**
*********************************************************************************************************/
#include "config.h"
#include "i2cCfg.h"
#include "i2cBus.h"
#include "i2cDev.h"
#include "i2cDrv.h"
/*********************************************************************************************************
全局变量声明
*********************************************************************************************************/
I2C_DEV __Gi2cdevOldDev; /* 简单操作库的设备对象 */
/*********************************************************************************************************
** Function name: i2cInit
** Descriptions: 初始化 I2C
** input parameters: iBps 时钟速度
** output parameters: NONE
** Returned value: NONE
** Created by: Hanhui
** Created Date: 2007/12/05
**--------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
**--------------------------------------------------------------------------------------------------------
*********************************************************************************************************/
void i2cInit (int iBps)
{
i2cBusInit();
i2cDevOpen(&__Gi2cdevOldDev, 0, 0xa0, iBps);
}
/*********************************************************************************************************
** Function name: i2cRecv
** Descriptions: I2C 总线接收
** input parameters: ucDevAddr 器件地址
** pucSubAddrArry 子地址数组
** ucSubAddrNum 子地址数量
** pucRecvBuffer 接收缓冲区
** iNum 期望接收的数目
** output parameters: NONE
** Returned value: NONE
** Created by: Hanhui
** Created Date: 2007/12/05
**--------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
**--------------------------------------------------------------------------------------------------------
*********************************************************************************************************/
int i2cRecv (unsigned char ucDevAddr,
unsigned char *pucSubAddrArry,
unsigned char ucSubAddrNum,
unsigned char *pucRecvBuffer,
unsigned int iNum)
{
I2C_SUB_ADDR i2csubaddrInfo;
if (!pucRecvBuffer) {
return (0);
}
if (ucSubAddrNum) { /* 设置子地址 */
memcpy(i2csubaddrInfo.ucSubAddrArry,
pucSubAddrArry,
ucSubAddrNum);
i2csubaddrInfo.ucSubAddrNum = ucSubAddrNum;
i2cDevIoctl(&__Gi2cdevOldDev, I2C_SET_SUB_ADDR, (int)&i2csubaddrInfo);
}
i2cDevIoctl(&__Gi2cdevOldDev, I2C_SET_ADDR, (int)ucDevAddr); /* 设置器件地址 */
return (i2cDevRead(&__Gi2cdevOldDev, (char *)pucRecvBuffer, iNum));
}
/*********************************************************************************************************
** Function name: i2cSend
** Descriptions: I2C 总线发送
** input parameters: ucDevAddr 器件地址
** pucSubAddrArry 子地址数组
** ucSubAddrNum 子地址数量
** pucRecvBuffer 发送缓冲区
** iNum 发送数目
** output parameters: NONE
** Returned value: NONE
** Created by: Hanhui
** Created Date: 2007/12/05
**--------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
**--------------------------------------------------------------------------------------------------------
*********************************************************************************************************/
int i2cSend (unsigned char ucDevAddr,
unsigned char *pucSubAddrArry,
unsigned char ucSubAddrNum,
unsigned char *pucSendBuffer,
unsigned int iNum)
{
I2C_SUB_ADDR i2csubaddrInfo;
if (!pucSendBuffer) {
return (0);
}
if (ucSubAddrNum) { /* 设置子地址 */
memcpy(i2csubaddrInfo.ucSubAddrArry,
pucSubAddrArry,
ucSubAddrNum);
i2csubaddrInfo.ucSubAddrNum = ucSubAddrNum;
i2cDevIoctl(&__Gi2cdevOldDev, I2C_SET_SUB_ADDR, (int)&i2csubaddrInfo);
}
i2cDevIoctl(&__Gi2cdevOldDev, I2C_SET_ADDR, (int)ucDevAddr); /* 设置器件地址 */
return (i2cDevWrite(&__Gi2cdevOldDev, (char *)pucSendBuffer, iNum));
}
/*********************************************************************************************************
** Function name: i2cSetBps
** Descriptions: 设置 I2C 总线速度
** input parameters: iBps 时钟速度
** output parameters: NONE
** Returned value: NONE
** Created by: Hanhui
** Created Date: 2007/12/05
**--------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
**--------------------------------------------------------------------------------------------------------
*********************************************************************************************************/
void i2cSetBps (int iBps)
{
i2cDevIoctl(&__Gi2cdevOldDev, I2C_SET_BPS, iBps);
}
/*********************************************************************************************************
END FILE
*********************************************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -