![]() |
發布時間: 2021-11-23 18:11
正文摘要:兩塊開發板,用同一單片機同一程序,一塊可以正常儲存大于255的數據,另一個只能儲存255以內的數據。本人菜鳥望知道的師傅指點一下,謝謝! |
快樂眼淚 發表于 2021-11-24 12:33 如果失敗的那個,AT24C距離 MCU的距離比 成功的那塊遠的話(走線距離),那么需要延長 NOP時間。 然后,你始終沒有提到的地方: AT24C 雖然有連寫功能,但是,是不能跨頁的, 而連讀是可以跨頁的。所以,如果你寫兩個字節,必須確保地址不能是 0x?F 不然,是不會寫入下個地址的。這一點你要核對代碼后確認的。 |
hhdsdy 發表于 2021-11-24 11:56 程序是用本壇子里的記憶開機次數程序,我分成兩個字節分別存儲,一塊板子正常存儲,一塊板子只能儲存小于255的數據,兩塊板子唯一不同的是正常板子的SDA是P2.0SCL是P2.1 不正常板子的SDA是P3.7SCL是P3.6但都定義好了的。 |
電路圖和程序都貼出來看看吧 |
可以將255分開來3個地址來儲存,讀取再合并起來就行了 |
liuzx66 發表于 2021-11-24 10:10 謝謝提醒!我再對比一下兩塊板子的引腳走向。問題是255以內的能存儲啊? |
jizhongbiao 發表于 2021-11-24 08:47 是的,分成兩個字節存儲的,一塊板子可以,一塊就不行。 |
硬件電路不同,程序就要相應修改。說不準那個地方就有沖突,就出現你這個現象了。 |
255是一個字節能表達的最大的數,要拆成2個字節存儲。 |
hhh402 發表于 2021-11-23 22:23 謝謝回復!就是用的兩個字節,一個可以,一個不行,到了255就清零從0開始了 |
24C02儲存是8位的,可以用2個字節存儲一個數據,就可以存儲65536以內當數據,如果用4個字節存儲一個數據,就可以存儲65536*65536=4294967296以內當數據。 |
頂一下 |
小板的正常,大板子不行 |