国产免费AV|泡泡玛特欧洲总部将设在伦敦|中文天堂网www新版资源在线|一本久道综合在线中文|国精产品一二三产区的使用方法|香蕉鱼在线观看|www.27eee

 找回密碼
 注冊
搜索

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

[復制鏈接]
樓主
coolice 發表于 2021-8-13 17:37:22 | 只看該作者 |倒序瀏覽 |閱讀模式
在調試STM32的i2c和io口模擬spi協議時發現時序是很關鍵的。stm32在72M運行下可以實現i2c或者spi協議,但并不代表把相同的代碼移植到51單片機上就會成功的跑起來,因為51單片機的速讀最塊8M,所以在時序上會產生很多大的區別。經過測試,在stm32上的spi協議時鐘線可達到20Khz,移植到51后,頻率會降到<10hz。可是盡管把延時調小或者去掉還是無濟于事,此時就要加幾句把鐘線置高置低的語句了以便增大的速度,后來成功后,測試時鐘線的確達到了10Khz左右。
先貼上部分代碼
  1. unsigned char ReadRawRC(unsigned char Address)
  2. {
  3.     unsigned char i, ucAddr;
  4.     unsigned char ucResult=0;

  5.     MF522_SCK = 0;
  6.     MF522_NSS = 0;
  7.      ucAddr= ((Address<<1)&0x7E)|0x80;

  8.     for(i=8;i>0;i--)
  9.     {
  10.         MF522_SI =((ucAddr&0x80)==0x80);
  11.         MF522_SCK = 1;//stm32上沒有
  12.         ucAddr <<= 1;
  13.         MF522_SCK = 0;
  14.     }

  15.     for(i=8;i>0;i--)
  16.     {
  17.         MF522_SCK = 1;//stm32上沒有
  18.         ucResult <<= 1;
  19.         ucResult|=(bit)MF522_SO;
  20.         MF522_SCK = 0;
  21.     }

  22.     MF522_NSS = 1;
  23.     MF522_SCK = 1;
  24.      returnucResult;
  25. }
復制代碼


您需要登錄后才可以回帖 登錄 | 注冊

本版積分規則

手機版|小黑屋|ELEOK |網站地圖

GMT+8, 2026-5-26 03:06

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回復 返回頂部 返回列表