国产精品久久久久影院,成人午夜福利视频,国产精品久久久久高潮,国产精品 欧美 亚洲 制服,国产精品白浆无码流出

歷史上的今天

今天是:2025年01月28日(星期二)

2021年01月28日 | 關(guān)于STM32的計數(shù)和延時

發(fā)布者:EnchantedMagic 來源: eefocus關(guān)鍵字:STM32  計數(shù)  延時 手機看文章 掃描二維碼
隨時隨地手機看文章

讀者*麗杰*問:

問個問題,我想要獲得比較準確的延時時間,用stm32哪個時鐘,通過什么方法讓他準確?


我的回答:

通過STM32的任意一個TIM定時器都可以達到比較精確的延時時間。


關(guān)于STM32的計數(shù)和延時

在STM32中,具有計數(shù)(或計時)功能的模塊基本都能實現(xiàn)延時功能。如:系統(tǒng)滴答SysTick、定時器TIM、實時時鐘RTC、看門狗WDG。


精確延時一般使用定時器TIM即可實現(xiàn)。當然,是否精確,取決于你的主頻(也就是晶振)是否準確,如果主頻精確,那么實現(xiàn)的延時也一定精確。


一般來說,常溫下實現(xiàn)us微秒級的延時,誤差還是挺小的(應(yīng)該說挺精確)。拿F407,主頻168M來說,可以實現(xiàn)幾十ns納秒的延時,如果選用高精度的晶振,誤差還是很小的。


總結(jié):想要TIM定時器實現(xiàn)高精確的延時,就需要高精度的晶振。主頻精確,那么延時就精確。


STM32的TIM定時器

 STM32的定時器有3類:

  • 高級定時器Advanced control Timer

  • 通用定時器General purpose Timer

  • 基本定時器Basic Timer


STM32的這三種定時器都能實現(xiàn)最基本的定時計數(shù)功能。差異在于它們的功能多少不一樣,從結(jié)構(gòu)圖一目了然,下面以STM32F4為例,給大家展示一下F4三類定時器的結(jié)構(gòu)圖:


高級定時器

圖片



通用定時器

圖片



基本定時器

圖片



相信大家看了上面3種結(jié)構(gòu)圖,心里大概應(yīng)該明白它們的差異存在哪些地方。 具體差異可以參看手冊中的“主要特性”,里面詳細講述了其中的功能和特性。


重要提示:

1.定時器的位數(shù)有16位和32位之分,詳見數(shù)據(jù)手冊。


2.定時器有多少個,以及是TIM幾,同樣見數(shù)據(jù)手冊。如下圖STM32F411就只有8個定時器,沒有基本定時器。


STM32定時器計數(shù)延時原理

上面3種定時器(高級、通用和基本)都能實現(xiàn)計數(shù)延時的功能,我們以最簡單的基本定時器為例,還是參看著結(jié)構(gòu)圖來說明:

圖片



1.來自RCC的時鐘,參看RCC時鐘樹,一般是SystemCoreClock或者SystemCoreClock/2, 如STM32F429的就是(180M/2)。


2.分頻CK_PSC之后就是計數(shù)器CK_CNT的計數(shù)頻率。

如分頻值位9,則計數(shù)頻率為1M. (180M / 2 / 9 = 10M).


3.實現(xiàn)1us計數(shù):

上面1秒計數(shù)10M個數(shù),那么我計10個數(shù),就是1us的時間。只需要在自動重載寄存器ARR中填充10 - 1即可。


代碼分析:


紅定義

//計數(shù)時鐘(相當于1秒鐘計數(shù)10M次個脈沖)

#define TIM6_COUNTER_CLOCK        10000000


//預分頻值

#define TIM6_PRESCALER_VALUE      (SystemCoreClock/2/TIM6_COUNTER_CLOCK - 1)


//定時周期(計數(shù)滿10個算一個周期,也就是1us)

#define TIM6_PERIOD_TIMING        (10 - 1)


配置

void TIM6_Configuration(void)

{

  TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;


  /* TIM6時基單元配置 */

  TIM_TimeBaseStructure.TIM_Prescaler = TIM6_PRESCALER_VALUE;        //預分頻值

  TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;        //向上計數(shù)模式

  TIM_TimeBaseStructure.TIM_Period = TIM6_PERIOD_TIMING;             //定時周期

  TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;            //時鐘分頻因子

  TIM_TimeBaseInit(TIM6, &TIM_TimeBaseStructure);

//TIM_ITConfig(TIM6, TIM_IT_Update, ENABLE);                         //使能"更新"中斷

}

如果需要中斷,則開啟1us中斷。


定時器阻塞延時

void TIM6_Nus(uint16_t Times)

{

  TIM_Cmd(TIM6, ENABLE);                                             //啟動定時器

  while(Times--)

  {    while(TIM_GetFlagStatus(TIM6, TIM_FLAG_Update) == RESET);        //等待計數(shù)完成

    TIM_ClearFlag(TIM6, TIM_FLAG_Update);                            //清除標志

  }

  TIM_Cmd(TIM6, DISABLE);                                            //關(guān)閉定時器

}


以上代碼,之前有分享過類似的,在下載區(qū) STM32F417_第一階段里面。


提示:


1.這類阻塞延時,僅供學習其原理使用,請結(jié)合實際項目修改代碼。


2.可以通過定時中斷 + 讀取計數(shù)器的值來獲取精確的時間。


比如:1ms中斷一次,同時,計數(shù)累加。獲取計數(shù)值 + 累計值也能得出精確延時。 (當然,中斷不能太頻繁), 此原理,適用于其他SysTick,RTC等具有計數(shù)功能的模塊。

關(guān)鍵字:STM32  計數(shù)  延時 引用地址:關(guān)于STM32的計數(shù)和延時

上一篇:STM32編碼器接口,以及應(yīng)用編程
下一篇:你的STM32芯片F(xiàn)LASH容量真如ST官方選型手冊那樣嗎?

推薦閱讀

? ? 手機是不可能戒了,這輩子都不可能戒了?! ∪斯ぶ悄苁墙鼉赡曜罨馃岬募夹g(shù),沒有之一。隨著AI技術(shù)的不斷進步,它已經(jīng)不滿足于躺在大型服務(wù)器或者裝備了頂級顯卡的臺式機中,而是開始慢慢爬上了人們最喜愛的東西——手機上。除了高通、英特爾這些芯片廠商外,像蘋果、華為和三星這樣的公司,也紛紛將自研的AI芯片嵌入到自家的手機產(chǎn)品中?! ?..
一年以前,陸奇在北京國家會議中心上喊出百度要“ALL IN AI”的口號。而去年此時,李彥宏乘坐自動駕駛車趕往會場,收到了那張著名的五環(huán)罰單。一年之后,百度已無陸奇,卻有了自動駕駛路試牌照。百度Apollo3.0的量產(chǎn),讓自動駕駛再一次火爆起來。從世界范圍來看,Waymo、優(yōu)步(Uber)、Lyft、百度(Baidu)和梅賽德斯-奔馳(Mercedes-Benz)等廠商正逐步...
單片機電梯控制器電路原理圖如下: 單片機源程序如下:#include <REG52.H>#include <INTRINS.H>unsigned char ucMotorDrvPuls; //電機運轉(zhuǎn)時初始值unsigned char FORREV=1; //1表示上行,0表示下行unsigned char STOPCUR=0;//1電梯停留在當前層,0不停留unsigned char CURFLR=1; //當前所在樓層unsigned char count=0; //累計到COUNT即表...
努比亞旗下的紅魔近日證實,該公司已與騰訊游戲達成戰(zhàn)略合作伙伴關(guān)系,此次合作的目的是為紅魔游戲智能手機的用戶提供更好的游戲體驗。甚至在該公司正式公布之前,就有關(guān)于這一合作伙伴關(guān)系的報道。最近,一張據(jù)稱即將發(fā)布的紅魔 6 游戲手機的圖片在網(wǎng)上泄露,圖片上既有紅魔的標志,也有騰訊游戲的標志。到目前為止,已經(jīng)確認紅魔 6 游戲智能手機將采...

史海拾趣

問答坊 | AI 解惑

電源輸入限制浪涌電流模塊

一、A3系列電源輸入限制浪涌電流模塊簡介 1、電源簡介 開關(guān)電源由于在體積、重量和效率等多方面的優(yōu)勢,已經(jīng)越來越廣泛地應(yīng)用在通信、航天航空、軍工兵器、發(fā)電變電等領(lǐng)域。從1955年美國科學家羅耶(G.H.ROYER)首先研制成功了利用磁飽和進行自激振蕩 ...…

查看全部問答∨

常用接口標準

常用的接口類型分類…

查看全部問答∨

DSP集成開發(fā)與應(yīng)用實例 張雄偉.rar

DSP集成開發(fā)與應(yīng)用實例 張雄偉.rar 電子書,要用超星閱覽器看…

查看全部問答∨

整理的關(guān)于51操作系統(tǒng)的東西

51上跑操作系統(tǒng)聽起來就覺得很過癮,目前還在學習學習中~~~ 終極目標是自己能寫一個10任務(wù)的os~~妄想中。。。 用到定時器中斷,得解決重入等問題~如果有做過的幫忙指導一下!…

查看全部問答∨

問下怎么寫驅(qū)動的啦

我現(xiàn)在要寫一個信號接收器的驅(qū)動 比如:在考場放置很多信號接收器,寫個驅(qū)動后在電腦上就可以觀察所有的信號接收器的情況。 我就想問像這種驅(qū)動使用什么寫的? 用的是什么技術(shù)? 最好能說些看些什么書? 因為前面沒學過這種東西,希望高手指定 ...…

查看全部問答∨

Wavecom貓在Windows自帶的超級終端可正常發(fā)送短信,可使用串口編程方式發(fā)送短信時失???為啥??

Wavecom貓在Windows自帶的超級終端可正常發(fā)送短信,可使用串口編程方式發(fā)送短信時失敗?為啥??我試驗了好幾天了,每次用Windows自帶的超級終端就可以,一旦換到用Vc++串口編程方式就失敗。用PortMan監(jiān)視數(shù)據(jù)也沒找到失敗的原因?有做過碰到過釘子 ...…

查看全部問答∨

高頻率SDRAM能否降頻使用?

以前電路設(shè)計時用了一塊EMST廠家的SDRAM,工作頻率是133MHz,現(xiàn)在由于停產(chǎn)所以不得以只能換器件,但找到最高工作頻率是200MHz的替代品,不知道能否直接降頻使用?原先板上的時鐘是133的,請大家?guī)兔μ醾€建議,謝謝!…

查看全部問答∨

有沒有誰使用gcc的時候,鏈接找不到函數(shù)

來自EEWORLD合作群:49900581 群主:wangkj這個函數(shù)是自己定義的,明明已經(jīng)定義了而且也實現(xiàn)了…

查看全部問答∨

經(jīng)典國外照明設(shè)計叢書《照明設(shè)計入門》

replyreload += \',\' + 1432027;不需要或者已經(jīng)有的朋友可以略過。文件格式:PDF      本書是具有照明實踐經(jīng)驗的三位作者同心協(xié)力、共同編著而成的。主要以想要學習照明設(shè)計的人,已經(jīng)在從事照明設(shè)計的人,想要把照明設(shè)計 ...…

查看全部問答∨

誰有TLE 8209 的資料

誰有TLE 8209 的資料    最好是中文的 …

查看全部問答∨
小廣播
設(shè)計資源 培訓 開發(fā)板 精華推薦

最新單片機文章

 
EEWorld訂閱號

 
EEWorld服務(wù)號

 
汽車開發(fā)圈

 
機器人開發(fā)圈

電子工程世界版權(quán)所有 京ICP證060456號 京ICP備10001474號-1 電信業(yè)務(wù)審批[2006]字第258號函 京公網(wǎng)安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved