欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 10133|回復(fù): 11
收起左側(cè)

24C02如何連續(xù)寫入多頁?用的51單片機

[復(fù)制鏈接]
回帖獎勵 9 黑幣 回復(fù)本帖可獲得 3 黑幣獎勵! 每人限 1 次(中獎概率 50%)
ID:184267 發(fā)表于 2017-9-16 18:19 | 顯示全部樓層 |閱讀模式
  1. main()                                                                                                               
  2. {
  3. unsigned int n=0,j=0,i;                                
  4.                 for(i=0;i<2;i++)          //共寫入16個數(shù)據(jù),每次寫進(jìn)8個,分兩次
  5.                 {
  6.                 I2C_Start();//啟動iic
  7.                 I2C_SendByte(0xa0, 1);//發(fā)送寫器件地址                                          
  8.                 I2C_SendByte(n, 1);//發(fā)送要寫入內(nèi)存地址 (第一次n是0,即地址0;   第二次n是8,即地址8)
  9.                         for(j=0;j<=8;j++)         //每頁寫入8個數(shù)據(jù)
  10.                          {
  11.                         I2C_SendByte(a[n], 1);
  12.                         n++;
  13.                         }               
  14.         I2C_Stop();                                         //寫完8個數(shù)據(jù)截止
  15.         I2C_Delay10us();
  16.                  }
  17.          while(1);
  18. }
復(fù)制代碼
第一個代碼,只有第一次能成個寫入8個數(shù)據(jù)。(失敗)
第二個代碼是把第一個代碼的第一個for去掉,執(zhí)行兩次寫入,就能夠成功寫入16費數(shù)據(jù)。(成功)
  1. main()                                                                                                               
  2. {
  3. unsigned int n=0,j=0,i;        
  4. /***第一次存8個數(shù)據(jù)******/
復(fù)制代碼
我要存的數(shù)據(jù)
  1. unsigned char code a[]={0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,
  2.                                        0x09,0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6};
復(fù)制代碼
我不明白為什么,為什么第一個代碼不行



回復(fù)

使用道具 舉報

ID:233594 發(fā)表于 2017-9-17 09:48 | 顯示全部樓層
恰好也遇到這個問題 幫頂
回復(fù)

使用道具 舉報

ID:111634 發(fā)表于 2017-9-17 10:57 | 顯示全部樓層
由于E2PROM的半導(dǎo)體工藝特性,對E2PROM的寫入時間需要5~10ms,但AT24Cxx系列串行E2PROM芯片內(nèi)部設(shè)置了一個具有SRAM性質(zhì)的輸入緩沖器,稱為頁寫緩沖器。CPU對該芯片寫操作時,AT24Cxx系列芯片先將CPU輸入的數(shù)據(jù)暫存在頁寫緩沖器內(nèi),然后,慢慢寫入E2PROM中。因此,CPU對AT24Cxx系列E2PROM一次寫入的字節(jié)數(shù),受到該芯片頁寫緩沖器容量的限制。頁寫緩沖器的容量為16B,若CPU寫入字節(jié)數(shù)超過芯片頁寫緩沖器容量,應(yīng)在一頁寫完后,隔5~10ms重新啟動一次寫操作。

評分

參與人數(shù) 1黑幣 +5 收起 理由
zx929747216 + 5 很給力!

查看全部評分

回復(fù)

使用道具 舉報

ID:111634 發(fā)表于 2017-9-17 10:58 | 顯示全部樓層
而且,若不是從頁寫緩沖器頁內(nèi)零地址0000寫起,一次寫入地址超出頁內(nèi)最大地址1111時,也將出錯。例如,若從頁內(nèi)地址0000寫起,一次最多可寫16字節(jié);若從頁內(nèi)地址0010寫起,一次最多只能寫14字節(jié),若要寫16字節(jié),超出頁內(nèi)地址1111,將會引起地址翻卷,導(dǎo)致出錯。

評分

參與人數(shù) 1黑幣 +5 收起 理由
MHNMHN + 5 很給力!大神完美解決我的問題啊。我還想問.

查看全部評分

回復(fù)

使用道具 舉報

ID:111634 發(fā)表于 2017-9-17 10:59 | 顯示全部樓層
本帖最后由 zl2168 于 2017-9-17 12:10 編輯

實例50  非零地址讀寫AT24C02
Proteus仿真一下,確認(rèn)有效。
實例50 非零地址讀寫AT24C02.rar (39.09 KB, 下載次數(shù): 67)
24c02a.jpg
以上摘自張志良編著《80C51單片機仿真設(shè)計實例教程——基于Keil CProteus》清華大學(xué)出版社ISBN 978-7-302-41682-1內(nèi)有常用的單片機應(yīng)用100案例,用于仿真實驗操作,電路與程序真實可靠可信可行。書中電路和程序設(shè)計有詳細(xì)說明,程序語句條條有注解。仿真電路和Hex文件能在清華出版社網(wǎng)站免費下載,程序源代碼只能到書上看了。到圖書館借,或到新華書店翻閱,或到網(wǎng)上書店打折購買。
回復(fù)

使用道具 舉報

ID:184267 發(fā)表于 2017-9-17 14:00 | 顯示全部樓層
zl2168 發(fā)表于 2017-9-17 10:58
而且,若不是從頁寫緩沖器頁內(nèi)零地址0000寫起,一次寫入地址超出頁內(nèi)最大地址1111時,也將出錯。例如,若從 ...

我還想問個問題,AT24C02分32頁,地址是00-1f嗎?
AT24C16分256頁,地址是00-ff嗎?
回復(fù)

使用道具 舉報

ID:111634 發(fā)表于 2017-9-17 20:46 | 顯示全部樓層
MHNMHN 發(fā)表于 2017-9-17 14:00
我還想問個問題,AT24C02分32頁,地址是00-1f嗎?
AT24C16分256頁,地址是00-ff嗎?

AT24C02分16頁,地址是00-ff.
AT24C16分128頁,地址是000-8ff
回復(fù)

使用道具 舉報

ID:258145 發(fā)表于 2017-12-29 10:12 | 顯示全部樓層
如果這樣,正好有一個存儲跨在兩頁上(比如在0X0F和0X10字節(jié)), 寫入的時候,用了連續(xù)寫, 那么就肯定會出錯了,
沒有跨頁連續(xù)寫入的辦法?
回復(fù)

使用道具 舉報

ID:375590 發(fā)表于 2019-5-7 14:38 | 顯示全部樓層
zl2168 發(fā)表于 2017-9-17 10:57
由于E2PROM的半導(dǎo)體工藝特性,對E2PROM的寫入時間需要5~10ms,但AT24Cxx系列串行E2PROM芯片內(nèi)部設(shè)置了一個 ...

您好,是5~10ms是確定的嗎?   我一直使用的是2MS
回復(fù)

使用道具 舉報

ID:608598 發(fā)表于 2019-9-24 22:41 | 顯示全部樓層
我在24c32寫入的時候也出現(xiàn)了類似的問題,24c32一頁32個字節(jié),我剛開始一次寫入10個就一直出問題,折騰了好幾天,最后發(fā)現(xiàn)是跨頁引起的,我將程序改成一次寫入16個字節(jié),這樣的話就不會跨頁,問題完美解決,后來又嘗試一次寫入2個、4個、8個、16個、32個均正常,希望能幫到你
回復(fù)

使用道具 舉報

ID:608598 發(fā)表于 2019-9-24 22:44 | 顯示全部樓層
24c02一頁2個字節(jié),你可以不用整頁寫,可以額用尋址的方法寫,一個字節(jié)一個字節(jié)的寫就行了,要注意,枚寫一個字節(jié)將i2c總線stop后必須延時至少5ms后方可再次寫入,不然就會出錯
回復(fù)

使用道具 舉報

ID:608598 發(fā)表于 2019-9-24 22:45 | 顯示全部樓層
小白n 發(fā)表于 2019-5-7 14:38
您好,是5~10ms是確定的嗎?   我一直使用的是2MS

數(shù)據(jù)手冊上就有寫的,至少5ms
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

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