打印

AT24C02的疑问?

[复制链接]
1928|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zhuanghaiyang|  楼主 | 2012-10-10 15:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在做AT24C02的实验,看啦看例程,在往里写数据的时候,会用到两个地址,一个地址一个子地址,子地址是什么地址?例程里还有个函数是不用子地址的,我试验过写进去一个数据读出来并不是写进去的那个数据


/*----------------------------------------------------------------
                    向无子地址器件发送字节数据函数               
函数原型: bit  ISendByte(unsigned char sla,ucahr c);  
功能:     从启动总线到发送地址,数据,结束总线的全过程,从器件地址sla.
           如果返回1表示操作成功,否则操作有误。
注意:    使用前必须已结束总线。
----------------------------------------------------------------*/
bit ISendByte(unsigned char sla,unsigned char c)
{
   Start_I2c();               //启动总线
   SendByte(sla);             //发送器件地址
     if(ack==0)return(0);
   SendByte(c);               //发送数据
     if(ack==0)return(0);
  Stop_I2c();                 //结束总线
  return(1);
}


/*----------------------------------------------------------------
                    向有子地址器件发送多字节数据函数               
函数原型: bit  ISendStr(unsigned char sla,unsigned char suba,ucahr *s,unsigned char no);  
功能:     从启动总线到发送地址,子地址,数据,结束总线的全过程,从器件
          地址sla,子地址suba,发送内容是s指向的内容,发送no个字节。
           如果返回1表示操作成功,否则操作有误。
注意:    使用前必须已结束总线。
----------------------------------------------------------------*/
bit ISendStr(unsigned char sla,unsigned char suba,unsigned char *s,unsigned char no)
{
unsigned char i;
for(i=0;i<no;i++)
    {
   Start_I2c();               //启动总线
   SendByte(sla);             //发送器件地址
     if(ack==0)return(0);
   SendByte(suba);            //发送器件子地址
     if(ack==0)return(0);

     SendByte(*s);            //发送数据
     
       if(ack==0)return(0);
     Stop_I2c();                  //结束总线
     DelayMs(2);               //必须延时等待芯片内部自动处理数据完毕
  s++;
  suba++;
    }
  return(1);
}

相关帖子

沙发
chen3bing| | 2012-10-10 16:07 | 只看该作者
子地址是往24c02里写数据的起始地址。

使用特权

评论回复
板凳
NE5532| | 2012-10-10 16:09 | 只看该作者
所以说术语害死人呢,楼主可以去声讨这本书的作者了。

你说的地址,是指I2C器件的硬件编址,子地址,是指内部E2空间的存储地址。

使用特权

评论回复
地板
zhuanghaiyang|  楼主 | 2012-10-10 16:32 | 只看该作者
硬件地址?怎样确定硬件的地址,是不是跟地址的那3个引脚有关系

使用特权

评论回复
5
NE5532| | 2012-10-10 17:27 | 只看该作者
就是。

使用特权

评论回复
6
我是土匪| | 2012-10-10 17:30 | 只看该作者
A0-A2引脚电平决定的

使用特权

评论回复
7
老鱼探戈| | 2012-10-10 18:06 | 只看该作者
楼主直接看规格书就可以了。

使用特权

评论回复
8
outstanding| | 2013-8-16 16:16 | 只看该作者
直接看datasheet 硬件地址与管脚接线有关系

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:广交单片机编程的朋友,QQ:446579893

5

主题

132

帖子

1

粉丝