欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

i2c 的eeprom读不同地址却历次读出相同值

更新时间: 2014-01-05 03:14:09 责任编辑: Author_N1

 

I2C 的EEPROM读不同地址却每次读出相同值
大家好:
  我现在使用DSP的I2C读写EEPROM,出现如下问题:

1. 在写的时候 ,感觉相序什么的没问题啊,还有ACK信号。
2. 在读的时候,整个示波器看相序,貌似也很正常,该有ACK的时候有ACK,但问题是我无论读哪个地方的内容,都返回是我最后一次写的内容。
比如:我先往地址0x00中写入0x12,再往地址0x10中写入0x34,之后我无论读哪个地址,出现的都是0x34.搞不清楚这个到底怎么回事。


大侠们帮忙看下。
--参考方法--
这像是没读出来或者没写进去,
假设你的写函数是i2c_writenbyte(addr,char* dat,char cnt)
没写一个就把*dat清零下
然后再看你读的还是不是最后一次写的
怀疑是你根本没读出来,写的时候,读的时候函数的返回地址刚好是你写的时候要写的那个数的地址
--参考方法--
抓波形,读和写的波形贴上来,

在一个start condition  <---->  end condition 中间只能进行 写或者读一种操作


另外,注意结贴率,会影响你代码的bug数
--参考方法--
读最后一个数据后要NAK,再Stop。 要不后面读出的数据会出错。
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 03:14:09
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/19856/
本文WWW.DOC100.NET DOC100.NET版权所有。