标题: 关于24C02储存大于255数据的问题 [打印本页]

作者: 快乐眼泪    时间: 2021-11-23 18:11
标题: 关于24C02储存大于255数据的问题
两块开发板,用同一单片机同一程序,一块可以正常储存大于255的数据,另一个只能储存255以内的数据。本人菜鸟望知道的师傅指点一下,谢谢!

作者: 快乐眼泪    时间: 2021-11-23 21:31
小板的正常,大板子不行
作者: 人工置顶员    时间: 2021-11-23 21:46
顶一下
作者: hhh402    时间: 2021-11-23 22:23
24C02储存是8位的,可以用2个字节存储一个数据,就可以存储65536以内当数据,如果用4个字节存储一个数据,就可以存储65536*65536=4294967296以内当数据。
作者: 快乐眼泪    时间: 2021-11-24 05:59
hhh402 发表于 2021-11-23 22:23
24C02储存是8位的,可以用2个字节存储一个数据,就可以存储65536以内当数据,如果用4个字节存储一个数据, ...

谢谢回复!就是用的两个字节,一个可以,一个不行,到了255就清零从0开始了
作者: jizhongbiao    时间: 2021-11-24 08:47
255是一个字节能表达的最大的数,要拆成2个字节存储。
作者: liuzx66    时间: 2021-11-24 10:10
硬件电路不同,程序就要相应修改。说不准那个地方就有冲突,就出现你这个现象了。
作者: 快乐眼泪    时间: 2021-11-24 11:27
jizhongbiao 发表于 2021-11-24 08:47
255是一个字节能表达的最大的数,要拆成2个字节存储。

是的,分成两个字节存储的,一块板子可以,一块就不行。
作者: 快乐眼泪    时间: 2021-11-24 11:29
liuzx66 发表于 2021-11-24 10:10
硬件电路不同,程序就要相应修改。说不准那个地方就有冲突,就出现你这个现象了。

谢谢提醒!我再对比一下两块板子的引脚走向。问题是255以内的能存储啊?
作者: 保持微笑    时间: 2021-11-24 11:44
可以将255分开来3个地址来储存,读取再合并起来就行了
作者: hhdsdy    时间: 2021-11-24 11:56
电路图和程序都贴出来看看吧
作者: 快乐眼泪    时间: 2021-11-24 12:33
hhdsdy 发表于 2021-11-24 11:56
电路图和程序都贴出来看看吧

程序是用本坛子里的记忆开机次数程序,我分成两个字节分别存储,一块板子正常存储,一块板子只能储存小于255的数据,两块板子唯一不同的是正常板子的SDA是P2.0SCL是P2.1     不正常板子的SDA是P3.7SCL是P3.6但都定义好了的。
作者: 188610329    时间: 2021-11-24 15:13
快乐眼泪 发表于 2021-11-24 12:33
程序是用本坛子里的记忆开机次数程序,我分成两个字节分别存储,一块板子正常存储,一块板子只能储存小于 ...

如果失败的那个,AT24C距离 MCU的距离比 成功的那块远的话(走线距离),那么需要延长 NOP时间。

然后,你始终没有提到的地方:
AT24C 虽然有连写功能,但是,是不能跨页的, 而连读是可以跨页的。所以,如果你写两个字节,必须确保地址不能是  0x?F   不然,是不会写入下个地址的。这一点你要核对代码后确认的。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1