📄 i2c.h
字号:
/*=========================================
Title: I2C_H
Author: DAI,daihj07@mails.tsinghua.edu.cn,DME@THU
Date: Dec 20,2007
version: v1.0
funciton:DSP中模拟I2C时序,在2407中实现
参考:
http://blog.21ic.com/user1/349/archives/2005/2751.html
MCS-51单片机模拟I2C软件包(V1.1)(c)
===========================================*/
#ifndef _I2C_H_
#define _I2C_H_
#define uchar unsigned char /*宏定义*/
#define uint unsigned int
#define bit unsigned int
#define _Nop() I2cDelay(10) /*定义空指令*/
//#define _Nop() I2cDelay(1) /*定义空指令*/ 可以, 未烧到flash
//#define SDA _PBDATDIR.bit0
//#define SCL _PBDATDIR.bit1
#define SDA _PCDATDIR.bit1 //IOPC1
#define SCL _PFDATDIR.bit5 //IOPF5
//#define OUT _PBDATDIR.bit8=1; _PBDATDIR.bit9=1 //数据线改为输出
//#define IN _PBDATDIR.bit8=0; _PBDATDIR.bit9=1 //数据线改为输入
#define OUT _PCDATDIR.bit9=1; _PFDATDIR.bit13=1 //数据线改为输出
#define IN _PCDATDIR.bit9=0; _PFDATDIR.bit13=1
/*==================================================================*/
/* IO设置*/
/*==================================================================*/
/*//////////////////////////////////////////////////////////////////////////////////////
1、I2C 掉电保存存储器
引脚 A0 A1 SCL SDA
DSP IO GND GND IOPF5 IOPC1
*/////////////////////////////////////////////////////////////////////////////////////////////////////
//#define I2C_SCL _PFDATDIR.bit5
//#define I2C_SDA _PCDATDIR.bit1
/* 应用示例
main()
{
uchar card[32],temp,rcard[32];
unsigned int i;
uchar addr;
bit flag1,flag2;
uchar sla=0xA0;
uchar suba=0x00;
uchar no=32;
flag1=0;
flag2=0;
for(i=0;i<no;i++)
{
card[i]=i;
rcard[i]=0x00;
}
addr=suba;
while(1)
{
flag1=SendStr(sla,suba,card,no);
Delay(10000);
for(i=0;i<no;i++)
{
flag2=RcvStr(sla,addr,rcard,no);
Delay(10);
}
}
}
*/
/*******************************************************************
向有子地址器件发送多字节数据函数
函数原型: bit ISendStr(uchar sla,uchar suba,ucahr *s,uchar no);
功能: 从启动总线到发送地址,子地址,数据,结束总线的全过程,从器件
地址sla,子地址suba,发送内容是s指向的内容,发送no个字节。
如果返回1表示操作成功,否则操作有误。
注意: 使用前必须已结束总线。
********************************************************************/
bit SendStr(uchar sla,uchar suba,uchar *s,uchar no);
/*******************************************************************
向有子地址器件读取多字节数据函数
函数原型: bit ISendStr(uchar sla,uchar suba,ucahr *s,uchar no);
功能: 从启动总线到发送地址,子地址,读数据,结束总线的全过程,从器件
地址sla,子地址suba,读出的内容放入s指向的存储区,读no个字节。
如果返回1表示操作成功,否则操作有误。
注意: 使用前必须已结束总线。
********************************************************************/
bit RcvStr(uchar sla,uchar suba,uchar *s,uchar no);
#endif//_I2C_H_
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -