精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

剖析STM32-定時器1

jf_78858299 ? 來源:匯極星科技 ? 作者:匯極星科技 ? 2023-04-21 15:14 ? 次閱讀

前言

定時器作為微控制器不可缺少的外設,在STM32中也是如此。相信不少初學者學到定時器的時候對STM32的學習熱情就大打折扣甚至想要放棄了,因為這一部分知識確實比較復雜。但是,如果你在之前對GPIO、串口通信、外部中斷的學習中把這些外設掌握了的話,學習這個新知識并不難。

例本章共計1萬余字,從STM32定時器的原理、寄存器介紹、定時器配置以及定時器的幾個常用的功能(如定時器中斷、定時器輸出比較PWM波形、定時器輸入捕獲測電平長度、定時器編碼器模式應用等)的使用方法來教大家掌握定時器這一外設。

一、定時器基本介紹

1. STM32定時器

1、上來說就是用來定時的機器,是存在于STM32單片機中的一個外設。STM32總共有8個定時器,分別是2個高級定時器(TIM1、TIM8),4個通用定時器(TIM2、TIM3、TIM4、TIM5)和2個基本定時器(TIM5、TIM6),如下圖所示:

圖片

這三種定時器的區別如下:

圖片

即:高級定時器具有捕獲/比較通道和互補輸出,通用定時器只有捕獲/比較通道,基本定時器沒有以上兩者。

2. 通用定時器功能和特點

STM32的眾多定時器中我們使用最多的是高級定時器和通用定時器,而高級定時器一般也是用作通用定時器的功能,下面我們就以通用定時器為例進行講解,其功能和特點包括:

位于低速的APB1總線上(APB1)

16 位向上、向下、向上/向下(中心對齊)計數模式,自動裝載計數器(TIMx_CNT)。

16 位可編程(可以實時修改)預分頻器(TIMx_PSC),計數器時鐘頻率的分頻系數 為 1~65535 之間的任意數值。

4 個獨立通道(TIMx_CH1~4),這些通道可以用來作為:

① 輸入捕獲 

    ② 輸出比較

    ③ PWM 生成(邊緣或中間對齊模式) 

    ④ 單脈沖模式輸出
  • 可使用外部信號(TIMx_ETR)控制定時器和定時器互連(可以用 1 個定時器控制另外一個定時器)的同步電路。
  • 如下事件發生時產生中斷/DMA(6個獨立的IRQ/DMA請求生成器):
    ①更新:計數器向上溢出/向下溢出,計數器初始化(通過軟件或者內部/外部觸發) 
    
      ②觸發事件(計數器啟動、停止、初始化或者由內部/外部觸發計數) 
    
      ③輸入捕獲 
    
      ④輸出比較 
    
      ⑤支持針對定位的增量(正交)編碼器和霍爾傳感器電路 
    
      ⑥觸發輸入作為外部時鐘或者按周期的電流管理
    

STM32 的通用定時器可以被用于:測量輸入信號的脈沖長度(輸入捕獲)或者產生輸出波形(輸出比較和 PWM)等。

使用定時器預分頻器和 RCC 時鐘控制器預分頻器,脈沖長度和波形周期可以在幾個微秒到幾個毫秒間調整。STM32 的每個通用定時器都是完全獨立的,沒有互相共享的任何資源。

3. 計數器模式

通用定時器可以向上計數、向下計數、向上向下雙向計數模式。

①向上計數模式:計數器從0計數到自動加載值(TIMx_ARR),然后重新從0開始計數并且產生一個計數器溢出事件。

②向下計數模式:計數器從自動裝入的值(TIMx_ARR)開始向下計數到0,然后從自動裝入的值重新開始,并產生一個計數器向下溢出事件。

③中央對齊模式(向上/向下計數):計數器從0開始計數到自動裝入的值-1,產生一個計數器溢出事件,然后向下計數到1并且產生一個計數器溢出事件;然后再從0開始重新計數。

圖片

** 4. 定時器工作原理**

a.定時器框圖

下面就是STM32定時器的工作款圖了,是學習STM32定時器必須要掌握的。很多學習者學會了通過庫函數來配置定時器,實現了簡單的應用卻忽略了基本原理,這就對導致在復雜應用的設計上出現低級的錯誤。所以建議讀者認真掌握定時器的工作框圖,明白內在的原理。

圖片

框圖可以分為四個大部分(用紅色筆表示出),分別是:①時鐘產生器部分,②時基單元部分,③輸入捕獲部分、④輸出比較部分。

b.時鐘產生器部分

在第一部分時鐘選擇上,STM32定時器有四種時鐘源選擇(圖中藍色筆標識),分別是:

①內部時鐘(CK_INT)

②外部時鐘模式:外部觸發輸入(ETR)

③內部觸發輸入(ITRx):使用一個定時器作為另一個定時器的預分頻器,如可以配置一個定時器Timer1而作為另一個定時器Timer2的預分頻器。

④外部時鐘模式:外部輸入腳(TIx)

圖片

這四種情況可由右圖表示:

其中,內部觸發輸入口1~4除了ITR1/ITR2/ITR3/ITR4之外還有一種情況:用一個定時器作為另一個定時器的分頻器。

外部捕獲比較引腳有兩種,分別是:

引腳1:TI1FP1或TI1F_ED

引腳2:TI2FP2

c.時基單元

時基單元就是定時器框圖的第二部分,它包括三個寄存器,分別是:計數器寄存器(TIMx_CNT)、預分頻器寄存器(TIMx_PSC)和自動裝載寄存器(TIMx_ARR)。對這三個寄存器的介紹如下:

計數器寄存器(TIMx_CNT)

向上計數、向下計數或者中心對齊計數;

計數器寄存器(TIMx_CNT)

可將時鐘頻率按1到65535之間的任意值進行分頻,可在運行時改變其設置值;

自動裝載寄存器(TIMx_ARR)

如果TIMx_CR1寄存器中的ARPE位為0,ARR寄存器的內容將直接寫入影子寄存器;如果ARPE為1,ARR寄存器的那日同將在每次的更新時間UEV發生時,傳送到影子寄存器;

如果TIM1_CR1中的UDIS位為0,當計數器產生溢出條件時,產生更新事件。

d.輸入捕獲通道

IC1、2和IC3、4可以分別通過軟件設置將其映射到TI1、TI2和TI3、TI4;

4個16位捕捉比較寄存器可以編程用于存放檢測到對應的每一次輸入捕捉時計數器的值;

當產生一次捕捉,相應的CCxIF標志位被置1;同時如果中斷或DMA請求使能,則產生中斷或DMA請求。

如果當CCxIF標志位已經為1,當又產生一個捕捉,則捕捉溢出標志位CCxOF將被置1。

v圖片

e.輸出比較通道(PWM)

PWM模式運行產生:

定時器2、3和4可以產生4獨立的信號

    頻率和占空比可以進行如下設定:

            一個自動重載寄存器用于設定PWM的周期;

            每個PWM通道有一個捕捉比較寄存器用于設定占空時間。

            例如:產生一個40KHz的PWM信號:在定時器2的時鐘為72MHz下,占空比為50% :

                    預分頻寄存器設置為0 (計數器的時鐘為TIM1CLK/(O+1)),自動重載寄存器設為                         1799,CCRx寄存器設為899。

兩種可設置PWM模式:

邊沿對齊模式

    中心對齊模式

圖片

二、定時器中斷應用

1.內部時鐘選擇

圖片

圖片

除非APB1的分頻系數是1,否則通用定時器的時鐘等于APB1時鐘的2倍。

默認調用SystemInit函數情況下:

SYSCLK=72M

AHB時鐘=72M

APB1時鐘=36M

所以APB1的分頻系數=AHB/APB1時鐘=2

所以,通用定時器時鐘CK_INT=2*36M=72M

2.計數器模式

向下計數模式:(時鐘分頻因子=1)

圖片

圖片

  • 向下計數模式:(時鐘分頻因子=1)

圖片

中央對齊計數模式:(時鐘分頻因子=1 ARR=6)圖片圖片

** 3.定時器中斷實驗相關寄存器**

  • 計數器當前值寄存器CNT

圖片

  • 預分頻寄存器TIMx_PSC

圖片

  • 自動重裝載寄存器(TIMx_ARR)

圖片

  • 控制寄存器1(TIMx_CR1)

圖片

  • DMA中斷使能寄存器(TIMx_DIER)

圖片

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 微控制器
    +關注

    關注

    48

    文章

    7489

    瀏覽量

    151051
  • 定時器
    +關注

    關注

    23

    文章

    3237

    瀏覽量

    114472
  • GPIO
    +關注

    關注

    16

    文章

    1196

    瀏覽量

    51919
收藏 人收藏

    評論

    相關推薦

    stm32定時器中斷程序

    STM32定時器是個強大的模塊,定時器使用的頻率也是很高的,定時器可以做一些基本的定時,還可以做PWM輸出或者輸入捕獲功能。 以下是進行
    發表于 10-12 16:59 ?1.3w次閱讀

    STM32-基本定時器TIM6-TIM7基本定時功能

     STM32中一共有11個定時器,其中2個高級控制定時器,4個普通定時器和2個基本定時器,以及2個看門狗
    發表于 11-27 18:55 ?1.2w次閱讀
    <b class='flag-5'>STM32-</b>基本<b class='flag-5'>定時器</b>TIM6-TIM7基本<b class='flag-5'>定時</b>功能

    STM32-通用定時器基本定時功能資料下載

    電子發燒友網為你提供STM32-通用定時器基本定時功能資料下載的電子資料下載,更有其他相關的電路圖、源代碼、課件教程、中文資料、英文資料、參考設計、用戶指南、解決方案等資料,希望可以幫助到廣大的電子工程師們。
    發表于 04-12 08:44 ?4次下載
    <b class='flag-5'>STM32-</b>通用<b class='flag-5'>定時器</b>基本<b class='flag-5'>定時</b>功能資料下載

    [STM32]通用定時器的使用

    STM32的通用定時器定時、輸出PWM功能的使用本次還是使用發光二極管來驗證定時器的使用目錄STM32的通用
    發表于 11-22 19:06 ?24次下載
    [<b class='flag-5'>STM32</b>]通用<b class='flag-5'>定時器</b>的使用

    STM32——如何配置通用定時器中斷

    STM32定時器STM32F103ZET6一共有8個定時器,其中分別為:高級定時器(TIM1
    發表于 11-23 17:51 ?14次下載
    <b class='flag-5'>STM32</b>——如何配置通用<b class='flag-5'>定時器</b>中斷

    STM32定時器-基本定時器

    目錄定時器分類基本定時器功能框圖講解基本定時器功能時鐘源計數時鐘計數自動重裝載寄存
    發表于 11-23 18:21 ?31次下載
    <b class='flag-5'>STM32</b><b class='flag-5'>定時器</b>-基本<b class='flag-5'>定時器</b>

    STM32——高級定時器、通用定時器、基本定時器的區別

    STM32——高級定時器、通用定時器、基本定時器的區別
    發表于 11-26 15:21 ?110次下載
    <b class='flag-5'>STM32</b>——高級<b class='flag-5'>定時器</b>、通用<b class='flag-5'>定時器</b>、基本<b class='flag-5'>定時器</b>的區別

    STM32-通用定時器-PWM輸出

    1 通用定時器PWM概述1.1STM32定時器輸出通道引腳這里以TIM3為例來講解。STM32的通用定時
    發表于 11-26 15:36 ?23次下載
    <b class='flag-5'>STM32-</b>通用<b class='flag-5'>定時器</b>-PWM輸出

    STM32-通用定時器-定時器中斷

    1STM32定時器STM32F103ZET6一共有8個定時器,其中分別為:高級定時器(TIM1
    發表于 11-26 15:36 ?16次下載
    <b class='flag-5'>STM32-</b>通用<b class='flag-5'>定時器</b>-<b class='flag-5'>定時器</b>中斷

    STM32---定時器知多少

    STM32定時器知多少這里寫目錄標題STM32---定時器知多少定時器的分類定時器的工作原理
    發表于 11-30 14:36 ?19次下載
    <b class='flag-5'>STM32</b>---<b class='flag-5'>定時器</b>知多少

    STM32定時器學習---基本定時器

    STM32F1系列的產品,除了互聯網產品外,工作8個,3種定時器,其中一種就是基本定時器。那么STM32單片機的基本定時器如何操作以及編程呢
    發表于 12-02 14:06 ?27次下載
    <b class='flag-5'>STM32</b><b class='flag-5'>定時器</b>學習---基本<b class='flag-5'>定時器</b>

    STM32的通用定時器

    STM32F1定時器非常多,由 2 個基本定時器(TIM6、TIM7)、4 個通用定時器(TIM2-TIM5)和 2 個高級定時器(TI
    的頭像 發表于 02-10 14:47 ?3371次閱讀

    剖析STM32-定時器2

    定時器作為微控制不可缺少的外設,在STM32中也是如此。相信不少初學者學到定時器的時候對STM32的學習熱情就大打折扣甚至想要放棄了,因為
    的頭像 發表于 04-21 15:14 ?1200次閱讀

    剖析STM32-定時器3

    定時器作為微控制不可缺少的外設,在STM32中也是如此。相信不少初學者學到定時器的時候對STM32的學習熱情就大打折扣甚至想要放棄了,因為
    的頭像 發表于 04-21 15:14 ?2204次閱讀
    <b class='flag-5'>剖析</b><b class='flag-5'>STM32-</b><b class='flag-5'>定時器</b>3

    STM32 TIM—基本定時器

    STM32F4xx系列控制有共有14個TIM定時器。其中2個高級控制定時器TIM1和TIM8、10 個通用
    的頭像 發表于 07-22 17:05 ?4860次閱讀
    <b class='flag-5'>STM32</b> TIM—基本<b class='flag-5'>定時器</b>