AT24C256 多頁讀寫關鍵程式段

來源:互聯網
上載者:User

在寫滿一頁後,需要結束匯流排,然後從新啟動匯流排,再寫入sla,寫入下頁的suba,寫入資料。。。。

在結束匯流排和啟動匯流排間要一定要加入延時,長點!!

extern unsigned char enumer;bit ISendStr(unsigned char  sla,unsigned int suba,unsigned char  *s,unsigned char  no){    unsigned char i;   unsigned int k;//   Start_I2c();               /*啟動匯流排*/    SendByte(sla);             /*發送器件地址*/  if(ack==0)return(0); ///////////////////////////////////////////    if(AT24C256 == AT24C256){ SendByte((unsigned char)(suba >> 8));//把整型資料轉換為字元型資料:棄高取低,只取低8位.
//如果容量大於32K位,使用16位地址定址,寫入高八位地址    if(ack==0) return(0);  }   SendByte((unsigned char)suba);            /*發送器件子地址*/   if(ack==0)return(0);   for(i=0;i<no;i++)   {  //******************此段判斷頁**************************//    if(suba%64==0)   {   Stop_I2c();for(k=0;k<10000;k++);Start_I2c();               /*啟動匯流排*/    SendByte(sla);             /*發送器件地址*/ if(ack==0)return(0); ///    if(AT24C256 == AT24C256){ SendByte((unsigned char)(suba >> 8));//把整型資料轉換為字元型資料:棄高取低,只取低8位.
                                                 //如果容量大於32K位,使用16位地址定址,寫入高八位地址    if(ack==0) return(0);  }   SendByte((unsigned char)suba);            /*發送器件子地址*/   if(ack==0)return(0);   } suba++;   //********************此段判斷頁*****************************// /*發送資料*/           SendByte(*s++);      if(ack==1)  continue;//////////////return(0);////////////////////////////  senddd('X'); //沒有到這···· ///return(0);////   }       Stop_I2c();                /*結束匯流排*/    return(1);}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.