找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1800|回复: 6
打印 上一主题 下一主题
收起左侧

关于24c02存储器停止条件的时序问题

[复制链接]
跳转到指定楼层
楼主
ID:1045600 发表于 2022-9-22 23:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在向24c02写入数据时,发现只能写入偶数,不能写入奇数。在论坛搜索时发现有人也遇到了同样的问题。EEPROM 24C02 不能写入奇数,请高手解答。然后我按照回答,将终止条件的时序由SDA=0;SCL=1;delay;SDA=1;delay;改为了SDA=0;delay;SCL=1;delay;SDA=1;delay后,便可以正常写入了。
到这我不明白,为什么都是在SCL为高电平时,SDA由低变高,但结果却不一样。还有明明偶数能写进去,但是奇数写不进去
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:688692 发表于 2022-9-22 23:52 | 只看该作者
SDA=0;SCL=1;中间没有延时,超过I2C最大允许速率了。
回复

使用道具 举报

板凳
ID:624769 发表于 2022-9-23 01:55 | 只看该作者
通常, 只要不是 布线不合理, 并且有足够的上拉。
SDA=0;
SCL=1;delay();    只需要 这里有个 延时就可以了,
SDA=1;

而你参考的那个帖子, 原主是这个顺序,所以才发生问题。
SCL=1;
SDA=0;delay();
SDA=1;delay();

所以,你最好确认一下, 你之前到底是  操作顺序错,还是delay的问题?

回复

使用道具 举报

地板
ID:879348 发表于 2022-9-23 08:02 | 只看该作者
直接复制STC官方例程,不要自己的理解去写
回复

使用道具 举报

5#
ID:194654 发表于 2022-9-23 09:08 | 只看该作者
cnos 发表于 2022-9-22 23:52
SDA=0;SCL=1;中间没有延时,超过I2C最大允许速率了。

哦,原来如此,明白了
回复

使用道具 举报

6#
ID:1034262 发表于 2022-9-23 11:33 | 只看该作者
I2C是简单的时序,只要严格按照时序写,都不会有问题,24C系列,注意最高速度、数据时钟间的时间、页写入间隔时间。示波器看一下就明白了,大部分访问有问题都是因为用了更快速的MCU而没有调慢速度。
回复

使用道具 举报

7#
ID:1045600 发表于 2022-9-23 15:07 | 只看该作者
感谢大佬们的回复,我明白为什么能写进偶数,但写不进去奇数的原因了。归根到底还是我对终止条件的时序没有理解透彻。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表