首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 单片机 >

I2C 的EEPROM读不同地址却历次读出相同值

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

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

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

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

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


另外,注意结贴率,会影响你代码的bug数
[解决办法]
读最后一个数据后要NAK,再Stop。 要不后面读出的数据会出错。

热点排行