對于MCU來說,定時器是必備的一個模塊,原因在于定時器是使用頻率最高。
1
寫在前面
我之前寫過許多關(guān)于定時器的文章,不過后臺還是有很多朋友問與定時期相關(guān)的問題,所以,這里也給大家推薦下面的這個關(guān)于定時器的資料。
相信有部分朋友都收到STM32公眾號的消息了,就是提供了一個我認(rèn)為比較好的資料:STM32 定時器基本原理及常見問題之培訓(xùn)資料。
這個資料我是第一時間就下載來看了,覺得整理的很好。特別是對于很多初學(xué)以及學(xué)習(xí)了一段時間STM32的朋友來說,對全方面掌握定時器有很大幫助作用。
考慮到很多朋友都只是知道有這么一個資料,沒有下載來學(xué)習(xí)、掌握。所以,今天在這里挑一些要點(diǎn),帶領(lǐng)大家學(xué)習(xí)。
下載地址在ST中文網(wǎng),(最近)進(jìn)入主頁,都能在首頁看到這個消息。
https://www.stmcu.com.cn/Designresource/design_resource_detail?file_name=STM32+%E5%AE%9A%E6%97%B6%E5%99%A8%E5%9F%BA%E6%9C%AC%E5%8E%9F%E7%90%86%E5%8F%8A%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98%E4%B9%8B%E5%9F%B9%E8%AE%AD%E8%B5%84%E6%96%99&lang=EN&ver=3.1
這個資料總共有186頁。內(nèi)容比較多,但講述的比較全面。
(提示:公眾號不支持外部鏈接,請復(fù)制鏈接到瀏覽器打開)
2
資料的主要內(nèi)容
? STM32定時器概述
? 定時器時基單元
? 定時器輸入捕捉功能
? 定時器比較輸出功能
? 定時器觸發(fā)同步與級聯(lián)
? 定時器DMA批量傳送
? 定時器產(chǎn)生的觸發(fā)輸出與其它外設(shè)的關(guān)聯(lián)
? STM32F334/STM32F7/STM32L4等新增的定時器功能
? 案例分享【穿插在上述內(nèi)容中】
3
STM32定時器分類
整體講, STM32家族的定時器眾多,按照核內(nèi)、核外標(biāo)準(zhǔn)大致分為兩部分:
核內(nèi)定時器 + 外設(shè)定時器
? 核內(nèi)定時器 : Systick
? 外設(shè)定時器: 特定應(yīng)用定時器+常規(guī)定時器
? 特定應(yīng)用定時器: LPTIM;RTC;WTD;HRTIM
? 常規(guī)定時器: 基本定時器、通用定時器、高級定時器 【本篇介紹重點(diǎn)】
按計(jì)數(shù)器位寬來分:
? 16位定時器
? 32位定時器 【TIM2 TIM5】
? 24位定時器 【Systick】
常規(guī)定時器
1.基本定時器:幾乎沒有任何對外輸入/輸出,常用作時基,實(shí)現(xiàn)基本的計(jì)數(shù)、定時功能。
2.通用定時器:除了基本定時器的時基功能外,還可對外做輸入捕捉、輸出比較以及連接其它傳感器接口【編碼器和霍爾傳感器】 。
3.高級定時器: 此類定時器的功能最為強(qiáng)大,除了具備通用定時器的功能外,還包含一些與電機(jī)控制和數(shù)字電源應(yīng)用相關(guān)的功能,比方帶死區(qū)控制的互補(bǔ)信號輸出、緊急剎車關(guān)斷輸入控制。
4
STM32定時器模塊
STM32【通用或高級】 定時器大致分為六個功能單元:
? 從模式控制單元:負(fù)責(zé)時鐘源、觸發(fā)信號源的選擇;控制計(jì)數(shù)器的啟停、復(fù)位、門控等;
? 時基單元:定時器核心單元。負(fù)責(zé)時鐘源的分頻、計(jì)數(shù)、溢出重裝等。
? 輸入單元:為部分的時鐘信號、 捕捉信號、 觸發(fā)信號提供信號源。
? 比較輸出單元:通過對比較寄存器與計(jì)數(shù)器的數(shù)值匹配比較,實(shí)現(xiàn)不同輸出波形。
? 觸發(fā)輸出單元:輸出觸發(fā)信號給到其它定時器或外設(shè)。
? 捕捉比較單元: 是輸入捕捉或比較輸出的公共執(zhí)行單元。
從信號鏈角度大體了解STM32定時器:
STM32定時器中存在著幾種基本的信號:輸入信號、 時鐘信號、 觸發(fā)輸入信號、 觸發(fā)輸出信號,它們之間相互關(guān)聯(lián)形成相應(yīng)的信號鏈,從而衍生出各種定時器的功能。
5
STM32定時器功能匯總
1、 六類功能單元
【時基、從模式控制、輸入、輸出、捕捉比較、觸發(fā)輸出】
2、 四類信號
【時鐘信號、外部輸入信號、觸發(fā)輸入信號、觸發(fā)輸出信號】
3、 四類事件
【更新事件、捕捉、 比較事件、觸發(fā)事件】
4、一大特性
【影子寄存器的預(yù)裝載特性】
這上面的一些內(nèi)容掌握了,對定時器基本就沒多大問題了,資料中也有詳細(xì)說明。
6
案例:定時器一使能就進(jìn)中斷的問題
問題描述: TIMER初始化階段, 經(jīng)常有人反饋一使能更新中斷就就進(jìn)中斷服務(wù)程序?給開發(fā)帶來些困擾,原因可能是什么?如何解決?
因?yàn)樵诙〞r器的初始化代碼里有軟件更新操作觸發(fā)了更新事件,并置位了更新中斷標(biāo)志,當(dāng)使能更新中斷時就立刻進(jìn)入更新中斷服務(wù)程序。
在STM32標(biāo)準(zhǔn)庫里的TIM_TimeBaseInit( )函數(shù)里都有這句代碼:
TIMx->EGR = TIM_PSCReloadMode_Immediate;
? 在Cube庫里的HAL_TIM_Base_Init( )函數(shù)里的 函數(shù)有這句代碼:
TIMx->EGR = TIM_EGR_UG;
顯然,這兩行代碼使用到了前面提到的軟件更新操作,觸發(fā)了更新事件,置位更新中斷標(biāo)志。所以我們在使能定時器更新中斷之前,可以先做更新中斷標(biāo)志的清除操作。
說明:資料中提供了很多案例說明,以及分析,我覺得比較好,方便大家理解。請多理解一下這些案例。
7
時鐘源問題思考
1、幾種時鐘源?來自何處?
2、來自TI1fp1與TIF_ED信號差別是什么?
3、來自TI1/TI2的時鐘是否可以直接像內(nèi)部時鐘一樣被計(jì)數(shù)器用來計(jì)數(shù)?
4、根據(jù)時鐘源的介紹,你了解到了幾種觸發(fā)輸入信號?
5、TI3FP4可以作為通道2的輸入捕捉信號嗎?
6、TI4FP4可以作為觸發(fā)信號嗎?
好了,篇幅有限,就寫到這里。這個資料的內(nèi)容我基本都看了一遍,可以結(jié)合《參考手冊》一起學(xué)習(xí),有部分內(nèi)容來自《參考手冊》。
希望還不知道,卻又想學(xué)習(xí)并深入理解定時器的朋友盡快下載來看看。
-
mcu
+關(guān)注
關(guān)注
146文章
17871瀏覽量
361144 -
定時器
+關(guān)注
關(guān)注
23文章
3289瀏覽量
117346
原文標(biāo)題:對于MCU來說,定時器太重要了!
文章出處:【微信號:mcuworld,微信公眾號:嵌入式資訊精選】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
SysTick 定時器

Stm32入門——Systick定時器

單片機(jī)MSP430入門-理論⑥--定時器模塊-定時器A

【STM32】SysTick滴答定時器(delay延時函數(shù)講解)

分享一個廚房定時器電路

評論