Stm32學習筆記三 定時器TIM

2021-09-25 06:37:16 字數 1874 閱讀 4504

輕則失根,躁則失君

stm32f103系列的微控制器一共有11個定時器,其中:

2個高階定時器(tim1和tim8):高階定時器不但具有基本,通用定時器的所有的功能,還具有控制交直流電動

機所有的功能,你比如它可以輸出6路互補帶死區的訊號,剎車功能等等;

4個通用定時器(tim2-tim5):除了基本的定時器的功能外,還具有測量輸入訊號的脈衝長度( 輸入捕獲) 或者

產生輸出波形( 輸出比較和pwm);

2個基本定時器(tim6和tim7):只有最基本的定時功能,。基本定時器tim6和tim7各包含乙個16位自動裝載

計數器,由各自的可程式設計預分頻器驅動;

2個看門狗定時器

1個系統嘀嗒定時器

除去看門狗定時器和系統滴答定時器的八個定時器又可以分成3個組;

tim1和tim8是高階定時器

tim2-tim5是通用定時器

tim6和tim7是基本的定時器

這8個定時器都是16位的,它們的計數器的型別除了基本定時器tim6和tim7都支援向上,向下,向上/向下這3種計數模式

向上計數模式:從0開始,計到arr預設值,產生溢位事件,返回重新計時;

向下計數模式:從arr預設值開始,計到0,產生溢位事件,返回重新計時;

**對齊模式:從0開始向上計數,計到arr產生溢位事件,然後向下計數,計數到1以後,又產生溢位,然後再

從0開始向上計數。(此種技術方法也可叫向上/向下計數)

通用定時器的時鐘**

a:內部時鐘(ck_int)	

b:外部時鐘模式1:外部輸入腳(tix)

c:外部時鐘模式2:外部觸發輸入(etr)

d:內部觸發輸入(itrx):使用乙個定時器作為另乙個定時器的預分頻器

死區時間(目前還沒有做深入研究)

h橋電路為避免由於關斷延遲效應造成上下橋臂直通,有必要設定死區時間

死區時間可有效地避免延遲效應所造成的乙個橋臂未完全關斷,而另一橋臂又處於導通狀態,避免直通炸開關管。

死區時間越大,電路的工作也就越可靠,但會帶來輸出波形的失真以及降低輸出效率。

死區時間小,輸出波形要好一些,但是會降低系統的可靠性,一般這個死區時間設定為us級

元器件死區時間是不可以改變的,它主要是取決於元器件的製作工藝和材料!

原則上死區時間當然越小越好。設定死區時間的目的,其實說白了就是為了電路的安全。最佳的設定方法是:在

保證安全的前提下,設定的死區時間越小越好。以不炸功率管、輸出不短路為目的。

選中:cmsis>core;device>startup;>stdperiph drivers>exti;>framework;>gpio;>rcc;>tim;等
void tim2_init(u32 period, u32 prescaler)

void tim2_delay_ms(uint16_t ms)

定時用到的暫存器 :

1.arr暫存器

2.psc暫存器

3.模式暫存器 (向上,向下,先向上然後向下,先向下然後向上)

arr

∗psc

/72000000

=arr*psc/72000000 =

arr∗ps

c/72

0000

00=定時時間

stm32關定時器 STM32定時器TIM3程式

include led.h include delay.h include key.h include sys.h include usart.h include timer.h stm32開發板實驗8 定時器中斷實驗 int main void delay init 延時函式初始化 nvic co...

STM32學習筆記 SysTick定時器

q 什麼是systick定時器?systick 是乙個24 位的倒計數定時器,當計到0 時,將從reload 暫存器中自動重裝載定時初值。只要不把它在systick 控制及狀態暫存器中的使能位清除,就永不停息。q 為什麼要設定systick定時器?1 產生作業系統的時鐘節拍 systick 定時器被...

STM32 定時器中斷學習筆記

在stm32中,定時器相關的庫函式主要集中在韌體庫檔案 stm32f10x tim.h 和 stm32f10x tim.c 檔案中,所以在進行定時器方面的處理時,需要載入這兩個檔案進來。在進行定時器操作時,一般按如下步驟來進行 1 開啟相關外設的時鐘。以定時器tim3為例,由stm32的時鐘樹可以看...