【STM32】通用定时器(TIM2到TIM5)
00. 目錄
文章目錄
- 00. 目錄
- 01. 通用定時器簡介
- 02. TIM2到TIM5主要特性
- 03. TIM2到TIM5功能說明
- 04. 時鐘選擇
- 05. 寄存器
- 5.1 TIMx 控制寄存器 1 (TIMx_CR1)
- 5.2 TIMx 控制寄存器 2 (TIMx_CR2)
- 5.3 TIMx 從模式控制寄存器 (TIMx_SMCR)
- 5.4 TIMx DMA/ 中斷使能寄存器 (TIMx_DIER)
- 5.5 TIMx 狀態寄存器 (TIMx_SR)
- 5.6 TIMx 事件生成寄存器 (TIMx_EGR)
- 5.7 TIMx 捕獲/ 比較模式寄存器 1 (TIMx_CCMR1)
- 5.8 TIMx 捕獲/ 比較模式寄存器 2 (TIMx_CCMR2)
- 5.9 TIMx 捕獲/ 比較使能寄存器 (TIMx_CCER)
- 5.10 TIMx 計數器 (TIMx_CNT)
- 5.11 TIMx 預分頻器 (TIMx_PSC)
- 5.12 TIMx 自動重載寄存器 (TIMx_ARR)
- 5.13 TIMx 捕獲/ 比較寄存器 1 (TIMx_CCR1)
- 5.14 TIMx 捕獲/ 比較寄存器 2 (TIMx_CCR2)
- 5.15 TIMx 捕獲/ 比較寄存器 3 (TIMx_CCR3)
- 5.16 TIMx 捕獲/ 比較寄存器 4 (TIMx_CCR4)
- 5.17 TIMx DMA 控制寄存器 (TIMx_DCR)
- 5.18 TIMx 全傳輸 DMA 地址 (TIMx_DMAR)
- 5.19 TIM2 選項寄存器 (TIM2_OR)
- 5.20 TIM5 選項寄存器 (TIM5_OR)
- 06. 附錄
- 07. 聲明
01. 通用定時器簡介
通用定時器包含一個 16 位或 32 位自動重載計數器,該計數器由可編程預分頻器驅動。
它們可用于多種用途,包括測量輸入信號的脈沖寬度( 輸入捕獲 )或生成輸出波形( 輸出比較和 PWM)。
使用定時器預分頻器和 RCC 時鐘控制器預分頻器,可將脈沖寬度和波形周期從幾微秒調制到幾毫秒。
這些定時器彼此完全獨立,不共享任何資源。
02. TIM2到TIM5主要特性
通用 TIMx 定時器具有以下特性:
● 16 位(TIM3 和 TIM4)或 32 位(TIM2 和 TIM5) 遞增、遞減和遞增/遞減自動重載計數器。
● 16 位可編程預分頻器,用于對計數器時鐘頻率進行分頻(即運行時修改),分頻系數介于 1 到 65536 之間。
● 多達 4 個獨立通道,可用于:
— 輸入捕獲
— 輸出比較
— PWM 生成(邊沿和中心對齊模式)
— 單脈沖模式輸出
● 使用外部信號控制定時器且可實現多個定時器互連的同步電路。
● 發生如下事件時生成中斷/DMA 請求:
— 更新:計數器上溢/下溢、計數器初始化(通過軟件或內部/外部觸發)
— 觸發事件(計數器啟動、停止、初始化或通過內部/外部觸發計數)
— 輸入捕獲
— 輸出比較
● 支持定位用增量(正交)編碼器和霍爾傳感器電路
● 外部時鐘觸發輸入或逐周期電流管理
03. TIM2到TIM5功能說明
時基單元
可編程定時器的主要模塊由一個 16 位/32 位計數器及其相關的自動重裝寄存器組成。此計數器可采用遞增方式計數。計數器的時鐘可通過預分頻器進行分頻。
計數器、自動重載寄存器和預分頻器寄存器可通過軟件進行讀寫。即使在計數器運行時也可執行讀寫操作。
時基單元包括:
● 計數器寄存器 (TIMx_CNT)
● 預分頻器寄存器 (TIMx_PSC)
● 自動重載寄存器 (TIMx_ARR)
自動重載寄存器是預裝載的。對自動重載寄存器執行寫入或讀取操作時會訪問預裝載寄存器。預裝載寄存器的內容既可以直接傳送到影子寄存器,也可以在每次發生更新事件 (UEV)時傳送到影子寄存器,這取決于 TIMx_CR1 寄存器中的自動重載預裝載使能位 (ARPE)。當計數器達到上溢值(或者在遞減計數時達到下溢值)并且 TIMx_CR1 寄存器中的 UDIS 位為0 時,將發送更新事件。該更新事件也可由軟件產生。下文將針對各配置的更新事件的產生進行詳細介紹。
計數器由預分頻器輸出 CK_CNT 提供時鐘,僅當 TIMx_CR1 寄存器中的計數器啟動位 (CEN)置 1 時,才會啟動計數器(有關計數器使能的更多詳細信息,另請參見從模式控制器的相關說明)。
請注意,真正的計數器使能信號 CNT_EN 在 CEN 置 1 的一個時鐘周期后被置 1。
預分頻器說明
預分頻器可對計數器時鐘頻率進行分頻,分頻系數介于 1 到 65536 之間。該預分頻器基于16 位/32 位寄存器(TIMx_PSC 寄存器)所控
制的 16 位計數器。由于該控制寄存器具有緩沖功能,因此預分頻器可實現實時更改。而新的預分頻比將在下一更新事件發生時被采用。
圖 120 和 圖 121 給出了在預分頻比發生實時變化時一些計數器行為的示例:
預分頻器分頻由 1 變為 2 時的計數器時序圖
預分頻器分頻由 1 變為 4 時的計數器時序圖
計數器模式
遞增計數模式
在遞增計數模式下,計數器從 0 計數到自動重載值(TIMx_ARR 寄存器的內容),然后重新從 0 開始計數并生成計數器上溢事件。
遞減計數模式
在遞減計數模式下,計數器從自動重載值(TIMx_ARR 寄存器的內容)開始遞減計數到 0,然后重新從自動重載值開始計數并生成計數器
下溢事件。
中心對齊模式(遞增/ 遞減計數)
在中心對齊模式下,計數器從 0 開始計數到自動重載值(TIMx_ARR 寄存器的內容)— 1,生成計數器上溢事件;然后從自動重載值開始
向下計數到 1 并生成計數器下溢事件。之后從0 開始重新計數。
04. 時鐘選擇
計數器時鐘可由下列時鐘源提供:
● 內部時鐘 (CK_INT)
● 外部時鐘模式 1:外部輸入引腳 (TIx)
● 外部時鐘模式 2:外部觸發輸入 (ETR),僅適用于 TIM2、TIM3 和 TIM4。
● 內部觸發輸入 (ITRx):使用一個定時器作為另一個定時器的預分頻器,例如可以將定時器配置為定時器 2 的預分頻器。
05. 寄存器
5.1 TIMx 控制寄存器 1 (TIMx_CR1)
TIMx control register 1
偏移地址:0x00
復位值:0x0000
5.2 TIMx 控制寄存器 2 (TIMx_CR2)
TIMx control register 2
偏移地址:0x04
復位值:0x0000
5.3 TIMx 從模式控制寄存器 (TIMx_SMCR)
TIMx slave mode control register
偏移地址:0x08
復位值:0x0000
5.4 TIMx DMA/ 中斷使能寄存器 (TIMx_DIER)
TIMx DMA/Interrupt enable register
偏移地址:0x0C
復位值:0x0000
5.5 TIMx 狀態寄存器 (TIMx_SR)
TIMx status register
偏移地址:0x10
復位值:0x0000
5.6 TIMx 事件生成寄存器 (TIMx_EGR)
TIMx event generation register
偏移地址:0x14
復位值:0x0000
5.7 TIMx 捕獲/ 比較模式寄存器 1 (TIMx_CCMR1)
TIMx capture/compare mode register 1
偏移地址:0x18
復位值:0x0000
5.8 TIMx 捕獲/ 比較模式寄存器 2 (TIMx_CCMR2)
TIMx capture/compare mode register 2
偏移地址:0x1C
復位值:0x0000
5.9 TIMx 捕獲/ 比較使能寄存器 (TIMx_CCER)
TIMx capture/compare enable register
偏移地址:0x20
復位值:0x0000
5.10 TIMx 計數器 (TIMx_CNT)
TIMx counter
偏移地址:0x24
復位值:0x0000
5.11 TIMx 預分頻器 (TIMx_PSC)
TIMx prescaler
偏移地址:0x28
復位值:0x0000
5.12 TIMx 自動重載寄存器 (TIMx_ARR)
TIMx auto-reload register
偏移地址:0x2C
復位值:0x0000
5.13 TIMx 捕獲/ 比較寄存器 1 (TIMx_CCR1)
TIMx capture/compare register 1
偏移地址:0x34
復位值:0x0000 000
5.14 TIMx 捕獲/ 比較寄存器 2 (TIMx_CCR2)
TIMx capture/compare register 2
偏移地址:0x38
復位值:0x0000 0000
5.15 TIMx 捕獲/ 比較寄存器 3 (TIMx_CCR3)
TIMx capture/compare register 3
偏移地址:0x3C
復位值:0x0000 0000
5.16 TIMx 捕獲/ 比較寄存器 4 (TIMx_CCR4)
TIMx capture/compare register 4
偏移地址:0x40
復位值:0x0000 0000
5.17 TIMx DMA 控制寄存器 (TIMx_DCR)
TIMx DMA control register
偏移地址:0x48
復位值:0x0000
5.18 TIMx 全傳輸 DMA 地址 (TIMx_DMAR)
TIMx DMA address for full transfer
偏移地址:0x4C
復位值:0x0000
5.19 TIM2 選項寄存器 (TIM2_OR)
TIM2 option register
偏移地址:0x50
復位值:0x0000
5.20 TIM5 選項寄存器 (TIM5_OR)
TIM5 option register
偏移地址:0x50
復位值:0x0000
06. 附錄
6.1 【STM32】STM32系列教程匯總
網址:【STM32】STM32系列教程匯總
07. 聲明
該教程參考了正點原子的《STM32 F4 開發指南》
總結
以上是生活随笔為你收集整理的【STM32】通用定时器(TIM2到TIM5)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【STM32】窗口看门狗相关类型和函数
- 下一篇: 【STM32】定时器相关函数和类型