找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1889|回復(fù): 6
打印 上一主題 下一主題
收起左側(cè)

關(guān)于24c02存儲器停止條件的時序問題

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:1045600 發(fā)表于 2022-9-22 23:03 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
在向24c02寫入數(shù)據(jù)時,發(fā)現(xiàn)只能寫入偶數(shù),不能寫入奇數(shù)。在論壇搜索時發(fā)現(xiàn)有人也遇到了同樣的問題。EEPROM 24C02 不能寫入奇數(shù),請高手解答。然后我按照回答,將終止條件的時序由SDA=0;SCL=1;delay;SDA=1;delay;改為了SDA=0;delay;SCL=1;delay;SDA=1;delay后,便可以正常寫入了。
到這我不明白,為什么都是在SCL為高電平時,SDA由低變高,但結(jié)果卻不一樣。還有明明偶數(shù)能寫進去,但是奇數(shù)寫不進去
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:688692 發(fā)表于 2022-9-22 23:52 | 只看該作者
SDA=0;SCL=1;中間沒有延時,超過I2C最大允許速率了。
回復(fù)

使用道具 舉報

板凳
ID:624769 發(fā)表于 2022-9-23 01:55 | 只看該作者
通常, 只要不是 布線不合理, 并且有足夠的上拉。
SDA=0;
SCL=1;delay();    只需要 這里有個 延時就可以了,
SDA=1;

而你參考的那個帖子, 原主是這個順序,所以才發(fā)生問題。
SCL=1;
SDA=0;delay();
SDA=1;delay();

所以,你最好確認一下, 你之前到底是  操作順序錯,還是delay的問題?

回復(fù)

使用道具 舉報

地板
ID:879348 發(fā)表于 2022-9-23 08:02 | 只看該作者
直接復(fù)制STC官方例程,不要自己的理解去寫
回復(fù)

使用道具 舉報

5#
ID:194654 發(fā)表于 2022-9-23 09:08 | 只看該作者
cnos 發(fā)表于 2022-9-22 23:52
SDA=0;SCL=1;中間沒有延時,超過I2C最大允許速率了。

哦,原來如此,明白了
回復(fù)

使用道具 舉報

6#
ID:1034262 發(fā)表于 2022-9-23 11:33 | 只看該作者
I2C是簡單的時序,只要嚴格按照時序?qū)懀疾粫袉栴},24C系列,注意最高速度、數(shù)據(jù)時鐘間的時間、頁寫入間隔時間。示波器看一下就明白了,大部分訪問有問題都是因為用了更快速的MCU而沒有調(diào)慢速度。
回復(fù)

使用道具 舉報

7#
ID:1045600 發(fā)表于 2022-9-23 15:07 | 只看該作者
感謝大佬們的回復(fù),我明白為什么能寫進偶數(shù),但寫不進去奇數(shù)的原因了。歸根到底還是我對終止條件的時序沒有理解透徹。
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表