亚洲春色中文字幕久久久-三上亚,91精品国产亚一区二区三区,久久久九色综合亚洲成色777,涩涩视频下载,国产午夜亚洲精品午夜鲁丝片,国产精品A一区二区三区腾讯导航,影音先锋色情AV在线看片,蜜臀国产在线视频,极品少妇高潮啪啪无码吴梦梦 ,精品人妻无码一区二区三区手机版

專注電子技術學習與研究
當前位置:單片機教程網 >> 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。可是盡管把延時調小或者去掉還是無濟于事,此時就要加幾句把鐘線置高置低的語句了 以便增大的速度,后來成功后,測試時鐘線的確達到了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;
}
 
關閉窗口

相關文章