日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

TIM—基本定时器

發布時間:2024/4/14 编程问答 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 TIM—基本定时器 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

定時器分類

????? STM32F1 系列中,除了互聯型的產品,共有 8 個定時器,分為基本定時器,通用定時器和高級定時器

????? 基本定時器 TIM6 和 TIM7 是一個 16 位的只能向上計數的定時器,只能定時,沒有外部 IO。

????? 通用定時器 TIM2/3/4/5 是一個 16 位的可以向上/下計數的定時器,可以定時,可以輸出比較,可以輸入捕捉,每個定時器有四個外部 IO。

????? 高級定時器 TIM1/8 是一個 16 位的可以向上/下計數的定時器,可以定時,可以輸出比較,可以輸入捕捉,還可以有三相電機互補輸出信號,每個定時器有 8 個外部 IO。更加具體的分類詳情見圖 。

基本定時器功能框圖講解

???? 基本定時器的核心是時基,不僅基本定時器有,通用定時器和高級定時器也有。學習定時器時,我們先從簡單的基本定時器學起,到了后面的通用和高級定時器的學習中,我們直接跳過時基部分的講解即可。基本定時器的功能框圖見圖 .

1. 時鐘源

????? 定時器時鐘 TIMxCLK,即內部時鐘 CK_INT,經 APB1 預分頻器后分頻提供,如果 APB1 預分頻系數等于 1,則頻率不變,否則頻率乘以 2,庫函數中 APB1 預分頻的系數是 2,即 PCLK1=36M,所以定時器時鐘 TIMxCLK=36*2=72M。

2. 計數器時鐘

????? 定時器時鐘經過 PSC 預分頻器之后,即 CK_CNT,用來驅動計數器計數。PSC 是一個 16 位的預分頻器,可以對定時器時鐘 TIMxCLK 進行 1~65536 之間的任何一個數進行分頻。具體計算方式為:CK_CNT=TIMxCLK/(PSC+1)。

3. 計數器

? ? ?計數器 CNT 是一個 16 位的計數器,只能往上計數,最大計數值為 65535。當計數達到自動重裝載寄存器的時候產生更新事件,并清零從頭開始計數。

4. 自動重裝載寄存器

????? 自動重裝載寄存器 ARR 是一個 16 位的寄存器,這里面裝著計數器能計數的最大數值。當計數到這個值的時候,如果使能了中斷的話,定時器就產生溢出中斷。

5. 定時時間的計算

????? 定時器的定時時間等于計數器的中斷周期乘以中斷的次數。計數器在 CK_CNT 的驅動下,計一個數的時間則是 CK_CLK 的倒數,等于:1/(TIMxCLK/(PSC+1)),產生一次中斷的時間則等于:1/(CK_CLK * ARR)。如果在中斷服務程序里面設置一個變量 time,用來 記 錄 中 斷的 次 數,那 么 就 可 以計 算 出我們 需 要 的 定時 時 間等于 : 1/CK_CLK * (ARR+1)*time。

定時器初始化結構體詳解

????? 在標準庫函數頭文件 stm32f4xx_tim.h 中對定時器外設建立了四個初始化結構體,基本定時器只用到其中一個即 TIM_TimeBaseInitTypeDef,具體的見代碼清單,其他三個我們在高級定時器章節講解。

typedef struct {uint16_t TIM_Prescaler; // 預分頻器uint16_t TIM_CounterMode; // 計數模式uint32_t TIM_Period; // 定時器周期uint16_t TIM_ClockDivision; // 時鐘分頻uint8_t TIM_RepetitionCounter; // 重復計算器} TIM_TimeBaseInitTypeDef;

????? (1) TIM_Prescaler:定時器預分頻器設置,時鐘源經該預分頻器才是定時器時鐘,它設定 TIMx_PSC 寄存器的值。可設置范圍為 0 至 65535,實現 1 至 65536 分頻。

????? (2) TIM_CounterMode:定時器計數方式,可是在為向上計數、向下計數以及三種中心對齊模式。基本定時器只能是向上計數,即 TIMx_CNT 只能從 0 開始遞增,并且無需初始化。

????? (3) TIM_Period:定時器周期,實際就是設定自動重載寄存器的值,在事件生成時更新到影子寄存器。可設置范圍為 0 至 65535。

?????? (4) TIM_ClockDivision:時鐘分頻,設置定時器時鐘 CK_INT 頻率與數字濾波器采樣時鐘頻率分頻比,基本定時器沒有此功能,不用設置。

????? (5) TIM_RepetitionCounter:重復計數器,屬于高級控制寄存器專用寄存器位,利用它可以非常容易控制輸出 PWM 的個數。這里不用設置。雖然定時器基本初始化結構體有 5 個成員,但對于基本定時器只需設置其中兩個就可以,想想使用基本定時器就是簡單。

轉載于:https://www.cnblogs.com/wenshinlee/p/9002747.html

總結

以上是生活随笔為你收集整理的TIM—基本定时器的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。