嵌入式 STM32 定時器知識點

2021-10-22 22:15:47 字數 821 閱讀 6786

機械週期:微控制器完成乙個操作的最短時間。機械週期主要針對組合語言,在組合語言下程式每一條執行所使用時間都是機械週期的整數倍。51標準架構下,乙個機械週期是12個時鐘週期,12m晶振下等於12*1/12000000秒。

51這麼設計是歷史的原因(畢竟它已經是30年前的老古董了),所以有機器週期和時鐘週期的區別。而stm32則沒有這個概念,機器週期就是時鐘週期。需要注意的是,最新型號的51已經不遵守「12機器週期等於1時鐘週期」這個規則了,stc的新型號51早就做到了1機器週期等於1時鐘週期。從這點來說已經跟stm32已經是一樣的了。

時鐘週期:時鐘週期t是時序中的最小時間單位,具體計算的方法就是1/時鐘頻率。

假如晶振頻率為168m,則時鐘週期=1/168000000秒

時間(過載值)計算舉例

時鐘源168m

根據實際需要進行8分頻後得到頻率為

21m/s (單位是s)

即定時器計數一次的時間為 1s/21m

也就是1x10^6 / 21x10^6=1/21 us(單位是us)

所以定時器數21次才等於1us的時間。

因為我們要想得到time us的時間所以我們的定時器要數21*time次,則我們的過載值(即設定定時器定時時間的最大值)應該為

time us = time * 21

因為定時器是從0開始算起的,每數1us都要-1所以

過載值 = time * 20

嵌入式課程設計 STM32 定時器程式設計

apb1 匯流排時鐘頻率 42mhz 42 2 84 mhz 定時器3驅動 include sys.h include 初始化定時器3 計數脈衝頻率 1mhz,定時時間設為 10ms 允許定時器中斷,採用向上計數方式 void inittimer3 void 編寫定時器3中斷服務處理程式 int t...

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的定時器

stm32一共有8個都為16位的定時器。其中tim6 tim7是基本定時器 tim2 tim3 tim4 tim5是通用定時器 tim1和tim8是高階定時器。1.基本定時器 基本定時器tim6和tim7只具備最基本的定時功能,就是累加的時鐘脈衝數超過預定值時,能觸發中斷或觸發dma請求。由於在晶元...