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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 關(guān)于調(diào)試stm32和stm8(51單片機)的i2c和spi協(xié)議的之間的區(qū)別

          關(guān)于調(diào)試stm32和stm8(51單片機)的i2c和spi協(xié)議的之間的區(qū)別

          作者: 時間:2016-11-27 來源:網(wǎng)絡(luò) 收藏
          在調(diào)試STM32i2c和io口模擬spi協(xié)議時發(fā)現(xiàn)時序是很關(guān)鍵的。stm32在72M運行下可以實現(xiàn)i2c或者spi協(xié)議,但并不代表把相同的代碼移植到51單片機上就會成功的跑起來,因為51單片機的速讀最塊8M,所以在時序上會產(chǎn)生很多大的區(qū)別。
          經(jīng)過測試,在stm32上的spi協(xié)議時鐘線可達到20Khz,移植到51后,頻率會降到<10hz??墒潜M管把延時調(diào)小或者去掉還是無濟于事,此時就要加幾句把鐘線置高置低的語句了 以便增大的速度,后來成功后,測試時鐘線的確達到了10Khz左右。
          先貼上部分代碼
          unsigned char ReadRawRC(unsigned char Address)
          {
          unsigned char i, ucAddr;
          unsigned char ucResult=0;
          MF522_SCK = 0;
          MF522_NSS = 0;
          ucAddr = ((Address<<1)&0x7E)|0x80;
          for(i=8;i>0;i--)
          {
          MF522_SI = ((ucAddr&0x80)==0x80);
          MF522_SCK = 1;//stm32上沒有
          ucAddr <<= 1;
          MF522_SCK = 0;
          }
          for(i=8;i>0;i--)
          {
          MF522_SCK = 1;//stm32上沒有
          ucResult <<= 1;
          ucResult|=(bit)MF522_SO;
          MF522_SCK = 0;
          }
          MF522_NSS = 1;
          MF522_SCK = 1;
          return ucResult;
          }



          評論


          技術(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); })();