亚洲综合色在线观看专区_国产91精品专区_欧洲美女人**一级毛片_国产精品太粉嫩高中网站_青青草原在线免费观看视频_超碰aⅴ亚洲中文字幕_精品一区欧美视频中文字幕_亚洲综合国产精品无码aⅴ导航_大地资源免费更新在线播放下载_免费高清毛片

南京芯科利電子科技有限公司

服務(wù)熱線:17749591789    

單片機

STM32中通過普通延時函數(shù)來精確延時

分類:單片機 發(fā)布:2019-03-20 10:47:17 瀏覽:605次 Tag:

在STM32中處處會用到延時函數(shù),一般而言,對于普通的控制延時,并不會要求特別精確,所以可以使用普通的延時函數(shù),例如


void delay(u32 time)  

{  

  while(time--);  

}  

 但是在某些情況下,例如讀取傳感器數(shù)據(jù),就需要精確的延時,對于這種,這時候可以考慮使用軟件定時器或者系統(tǒng)定時器進(jìn)行精確定時延時。在這篇博文中不在詳細(xì)對這兩種進(jìn)行描述。

本文主要是針對某些情況下,使用系統(tǒng)滴答定時器或者軟件定時器對工程造成阻塞影響或者定時器用作其他用途,不夠使用的情況下的另一種解決方法。


因此本文主要是解決通過普通延時函數(shù)實現(xiàn)精確的定時。

博主測試的開發(fā)板芯片是STM32f103c8t6,外部晶振是8M,系統(tǒng)使用經(jīng)過倍頻至72M,編譯器選擇的Keil5,使用的是庫函數(shù)開發(fā)。通過普通延時函數(shù)來實現(xiàn)讀取溫濕度傳感器DHT11的數(shù)據(jù),由于使用的freeRTOS操作系統(tǒng),同時各個軟件定時器用作其他用途。。。理由不再贅述。


剛開始,通過使用__NOP()函數(shù),因為使用了8M晶振9倍頻,72MHz,所以一個nop約等于1/72us,所以使用72個nop函數(shù)為一個us,然后根據(jù)需要的定時時間進(jìn)行計算。


void delay_us(u32 nTimer)  

{  

    u32 i=0;  

    for(i=0;i

        __NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();  

        __NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();  

        __NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();  

        __NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();  

        __NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();  

    }  

}  


void delay_ms(u32 nTimer)  

{  

    u32 i=1000*nTimer;  

    delay_us(i);  

}  


之后通過測試讀取傳感器數(shù)據(jù),得到了數(shù)據(jù),證明該延時函數(shù)相對比較準(zhǔn)確,但是由于博主身邊并沒有邏輯分析儀或示波器,所以不能對其延時時間進(jìn)行精確測試。

第二種延時方法是在電子發(fā)燒友論壇看到版主通過邏輯分析儀對另一種普通延時進(jìn)行的精確測試。同樣可以實現(xiàn)讀取數(shù)據(jù)。具體延時函數(shù)如下所示:


void delay_us(u32 time)  

{  

  u32 i=8*time;  

  while(i--);  

}  

void delay_ms(u32 time)  

{  

  u32 i=8000*time;  

  while(i--);  

}  

相關(guān)文章
QQ在線咨詢
銷售電話:
17749591789
17749591789
512383826
掃碼添加微信