• 專注電子技術學習與研究
    當前位置:單片機教程網 >> STM32 >> 瀏覽文章

    關于調試stm32和stm8(51單片機)的i2c和spi協議的之間的區別

    作者:佚名   來源:本站原創   點擊數:  更新時間:2014年04月25日   【字體:

     在調試STM32的i2c和io口模擬spi協議時發現時序是很關鍵的。stm32在72M運行下可以實現i2c或者spi協議,但并不代表把相同的代碼移植到51單片機上就會成功的跑起來,因為51單片機的速讀最塊8M,所以在時序上會產生很多大的區別。

    經過測試,在stm32上的spi協議時鐘線可達到20Khz,移植到51后,頻率會降到<10hz?墒潜M管把延時調小或者去掉還是無濟于事,此時就要加幾句把鐘線置高置低的語句了 以便增大的速度,后來成功后,測試時鐘線的確達到了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;
    }
     
    關閉窗口

    相關文章

    亚洲一区二区制服在线|在绩专区欧美自拍日韩|青春娱乐网97超碰人人射|在线观看国产网址你懂的