<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > I2C總線學(xué)習(xí)感想總結(jié)(一)

          I2C總線學(xué)習(xí)感想總結(jié)(一)

          作者: 時間:2016-11-25 來源:網(wǎng)絡(luò) 收藏
          一:起始與終止

          本文引用地址:http://www.ex-cimer.com/article/201611/321549.htm

          1:I2C起始條件

          SCL高電平期間,SDA從高電平向低電平切換。

          2:I2C終止條件

          SCL高電平期間,SDA從低電平向高電平切換。

          二:數(shù)據(jù)傳輸

          1:進(jìn)行數(shù)據(jù)傳送時,在SCL呈現(xiàn)高電平期間,SDA上的電平必須保持穩(wěn)定

          SDA上的數(shù)據(jù)只能在SCL為低電平期間變化。

          2:I2C總線每個CLK發(fā)送或接收一個位的數(shù)據(jù)(或地址)

          在CLK上升沿,把數(shù)據(jù)bit(或地址)送到SDA線上

          在CLK下降沿,從SDA線上讀取數(shù)據(jù)bit

          C程序?qū)嵗?/p>

          void Start_I2c()


          {
          SDA=1;
          _Nop();
          SCL=1;
          _Nop();
          _Nop();
          _Nop();
          _Nop();
          _Nop();
          SDA=0;
          _Nop();
          _Nop();
          _Nop();
          _Nop();
          _Nop();
          SCL=0;
          _Nop();
          _Nop();
          }

          void Stop_I2c()
          {
          SDA=0;
          _Nop();
          SCL=1;
          _Nop();
          _Nop();
          _Nop();
          _Nop();
          _Nop();
          SDA=1;
          _Nop();
          _Nop();
          _Nop();
          _Nop();
          }

          void SendByte(uchar c)
          {
          uchar BitCnt;

          for(BitCnt=0;BitCnt<8;BitCnt++)
          {
          if((c<
          else SDA=0;
          _Nop();
          SCL=1;
          _Nop();
          _Nop();
          _Nop();
          _Nop();
          _Nop();
          SCL=0;
          }

          _Nop();
          _Nop();
          SDA=1;
          _Nop();
          _Nop();
          SCL=1;
          _Nop();
          _Nop();
          _Nop();
          if(SDA==1)ack=0;
          else ack=1;
          SCL=0;
          _Nop();
          _Nop();
          }

          uchar RcvByte()
          {
          uchar retc;
          uchar BitCnt;

          retc=0;
          SDA=1;
          for(BitCnt=0;BitCnt<8;BitCnt++)
          {
          _Nop();
          SCL=0;
          _Nop();
          _Nop();
          _Nop();
          _Nop();
          _Nop();
          SCL=1;
          _Nop();
          _Nop();
          retc=retc<<1;
          if(SDA==1)retc=retc+1;
          _Nop();
          _Nop();
          }
          SCL=0;
          _Nop();
          _Nop();
          return(retc);
          }



          關(guān)鍵詞: I2C總線學(xué)習(xí)感

          評論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();