打印

24C02读写数据,顺序错乱

[复制链接]
4509|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
今天看着24C02的手册写了几段程序。手册里提到一次可以写入8个字节的数据(如果我没理解错的话),于是我分6次,每次写一个首地址然后写入8个字节的数据;手册里提到读取数据可以一直读到最后一个地址(如果我没理解错的话),然后写一个首地址一次性读了24个字节,然后按顺序显示出来。
结果发现数据全都是对的,就是顺序乱了,本来应该是按照写进去的顺序1 2 3 4 5 6……24排列的,而读出来显示的结果的顺序是1 2 3 4   13 14 15 16   9 10 11 12  21 22 23 24  17 18 19 20  29 30 31 32
有木有高手遇到过这种情况的?如何解决的?
程序的目的是将“unsigned int data0[12]”和“unsigned int data1[12]”这两个数组的数据写入24C02中,然后能读出来显示,为了减少读写时间间隔(WCT),采用每次写8字节,每次读24字节的方法。

相关帖子

沙发
chunyang| | 2013-6-25 23:58 | 只看该作者
仔细检查程序,注意读写地址分配。

使用特权

评论回复
板凳
tyw| | 2013-6-26 10:09 | 只看该作者
本帖最后由 tyw 于 2013-6-26 10:11 编辑

http://item.taobao.com/item.htm?id=16925800035&ali_trackid=2:mm_34205482_0_0:1372212283_6k1_584933194&clk1=539105f4eede200ade3c916d7e32fc00&spm=a230z.1.5634041.8.20ik96


建议LZ去上面买一个小东西,十几元钱,给电工配付眼镜,可收事半功倍之效,哈哈

使用特权

评论回复
地板
金则立则翔| | 2013-6-26 13:21 | 只看该作者
主要是地址的问题!

使用特权

评论回复
5
zhaoyu2005| | 2013-6-26 14:15 | 只看该作者
一页8个字节;一次写8字节,要求首地址是一页的起始地址,如果是中间地址就不行了,所以多字节写,要判断的,防止越界。你的问题估计就是地址越界造成的

使用特权

评论回复
6
3htech| | 2013-6-26 15:45 | 只看该作者
本帖最后由 3htech 于 2013-6-28 09:02 编辑

EEPROM页写需要时间。一般5-10ms。你的延时不够。看你读出的数据就知道,写8个数,前4个写进而后4个没写进去,就可以说明这点。

页写后,加上5ms的延时,保证问题全无。

使用特权

评论回复
7
3htech| | 2013-6-26 15:46 | 只看该作者
8
reille| | 2013-6-27 15:36 | 只看该作者
这应该是页写有问题导致的!
EEPROM的页写只能在一个页中,如果写的地址超过了页地址,则又会从页开始地址写!

使用特权

评论回复
9
马坝腾|  楼主 | 2013-6-28 20:34 | 只看该作者
zhaoyu2005 发表于 2013-6-26 14:15
一页8个字节;一次写8字节,要求首地址是一页的起始地址,如果是中间地址就不行了,所以多字节写,要判断的 ...

嗯,之前没注意这个问题,我写首地址是从地址0x04开始写第一个数据,所以到0x09就断了

使用特权

评论回复
10
马坝腾|  楼主 | 2013-6-28 20:39 | 只看该作者
3htech 发表于 2013-6-26 15:46
https://bbs.21ic.com/icview-370014-1-1.html

看过你的帖子也更了解了翻页的问题,谢谢了

使用特权

评论回复
11
马坝腾|  楼主 | 2013-6-28 20:39 | 只看该作者
reille 发表于 2013-6-27 15:36
这应该是页写有问题导致的!
EEPROM的页写只能在一个页中,如果写的地址超过了页地址,则又会从页开始地址 ...

正解,之前没注意

使用特权

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

本版积分规则

3

主题

7

帖子

0

粉丝