i2c.h

来自「单片机开发列程」· C头文件 代码 · 共 66 行

H
66
字号
#ifndef __I2C_H__
#define __I2C_H__

//存储器类芯片从机地址高四位为1010
/*
#define SLA24CL04HP 0xA6    //1010,0(A2)1(A1)1(高半叶)0  高256字节
#define SLA24CL04LP 0xA4    //1010,0(A2)1(A1)0(高半叶)0  低256字节
*/
#define SLA24CL04  0xA4    //1010,0(A2)1(A1)0(高半叶)0  低256字节

#define SLA3104Mem 0xA0     //1010,*(无关位)0(A1)0(A0)0
#define SLA3104RTC 0xD0     //1101,*(无关位)0(A1)0(A0)0

//****************************************************************************
//初始化I2C模块
//****************************************************************************
extern void I2CMasterInit(void);
/*****************************************************************************
*I2C总线向有子地址器件读取多字节数据函数
*返回0表示操作失败,返回1表示操作成功
*Sla      从机地址;  uchar a
*SubAddr  丛机子地址;
*pRecvBuf 待发送的数据缓冲头指针,若是发送单字节则直接取变量地址即可;
*Num      待发送数据的字节数
*****************************************************************************/
extern unsigned char I2CNByteRecv(unsigned char Sla, unsigned int SubAddr, unsigned char *pRecvBuf, unsigned int Num);
/*****************************************************************************
*I2C 总线向有子地址器件发送多字节数据函数
*返回0表示操作失败,返回1表示操作成功
*Sla      从机地址;  uchar a
*SubAddr  丛机子地址;
*pStr     待发送的数据缓冲头指针,若是发送单字节则直接取变量地址即可;
*Num      待发送数据的字节数
*****************************************************************************/
extern unsigned char I2CNByteSend(unsigned char Sla, unsigned int SubAddr, unsigned char *pSendBuf, unsigned int Num);



/******************************************************************************************
//24CL04的读写有一些特殊故单写出来
/******************************************************************************************

/******************************************************************************
*I2C总线向有子地址器件读取多字节数据函数
*返回0表示操作失败,返回1表示操作成功
*Sla      从机地址;  uchar a
*SubAddr  丛机子地址;
*pRecvBuf 待发送的数据缓冲头指针,若是发送单字节则直接取变量地址即可;
*Num      待发送数据的字节数
******************************************************************************/
extern unsigned char FM24CL04NByteRecv(unsigned char Sla, unsigned int SubAddr, unsigned char *pRecvBuf, unsigned int Num);
/******************************************************************************
*I2C 总线向有子地址器件发送多字节数据函数
*返回0表示操作失败,返回1表示操作成功
*Sla      从机地址;  uchar a
*SubAddr  丛机子地址;
*pStr     待发送的数据缓冲头指针,若是发送单字节则直接取变量地址即可;
*Num      待发送数据的字节数
*******************************************************************************/
extern unsigned char FM24CL04NByteSend(unsigned char Sla, unsigned int SubAddr, unsigned char *pSendBuf, unsigned int Num);

extern void FM24CL04Test(void);
extern void FM3104MemTest(void);


#endif

⌨️ 快捷键说明

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