stm32之通用定時器


stm32f10x系列最多有8個定時器

3種定時器
1.高級定時器
2.基本定時器
3.通用定時器

在這裏插入圖片描述

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

定時器中斷

時鐘選擇
計數器時鐘可以由下列時鐘源提供:
1.內部時鐘(CK_INT)(默認)
2.外部時鐘模式1:外部輸入腳 (TIx)
3.外部時鐘模式2:外部觸發輸入(ETR)
4.內部觸發輸入(ITRx):使用一個定時器作爲另一個定時器的預分頻器,如可以配置一個定時器Timer1而作爲另一個定時器Timer2的預分頻器

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

定時器中斷相關寄存器

1.計數器當前值寄存器CNT
在這裏插入圖片描述
2.預分頻寄存器PSC
在這裏插入圖片描述
3.自動重裝載寄存器ARR
在這裏插入圖片描述
4.控制寄存器1 CR1
在這裏插入圖片描述
5.DMA中斷使能寄存器DIER
在這裏插入圖片描述

定時器中斷庫函數

1.定時器初始化函數
void TIM_TimeBaseInit(TIM_TypeDef* TIMx, TIM_TimeBaseInitTypeDef* TIM_TimeBaseInitStruct);
在這裏插入圖片描述
在這裏插入圖片描述
預分頻係數
計數模式
自動裝載值

在這裏插入圖片描述
2.定時器使能函數
void TIM_Cmd(TIM_TypeDef* TIMx, FunctionalState NewState);
在這裏插入圖片描述

3.定時器中斷使能函數
void TIM_ITConfig(TIM_TypeDef* TIMx, uint16_t TIM_IT, FunctionalState NewState);

在這裏插入圖片描述
4.狀態標誌位的獲取和清除
FlagStatus TIM_GetFlagStatus(TIM_TypeDef* TIMx, uint16_t TIM_FLAG);
void TIM_ClearFlag(TIM_TypeDef* TIMx, uint16_t TIM_FLAG);
ITStatus TIM_GetITStatus(TIM_TypeDef* TIMx, uint16_t TIM_IT);
void TIM_ClearITPendingBit(TIM_TypeDef* TIMx, uint16_t TIM_IT);
在這裏插入圖片描述

定時器中斷的配置

1.使能定時器時鐘
2.初始化定時器
3.開啓定時器中斷,配置中斷
4.使能定時器
5.編寫中斷服務函數

溢出時間計算
在這裏插入圖片描述
延時500ms
ARR設置爲4999,PSC設置爲7199,TCLK是時鐘週期

在這裏插入圖片描述

PWM輸出

在這裏插入圖片描述
PWM原理
就是設置一個閾值,當大於閾值時輸出高電平,低於閾值輸出低電平
在這裏插入圖片描述
在這裏插入圖片描述

在這裏插入圖片描述

PWM庫函數

1.初始化函數
在這裏插入圖片描述
在這裏插入圖片描述
2.設置比較值函數
在這裏插入圖片描述

3.使能輸出比較預裝載
在這裏插入圖片描述
4.使能自動重裝載的預裝載寄存器允許位

pwm配置步驟

在這裏插入圖片描述

在這裏插入圖片描述

注:如果是普通定時器,不需要加上
在這裏插入圖片描述
對於TIM1和TIM8高級定時器則需要加上

輸入捕獲

工作過程:通過檢測TIMx_CHx上的邊沿信號,在邊沿信號發生跳變(比如上升沿/下降沿)的時候,將當前定時器的值(TIMx_CNT)存到對應的捕獲/比較寄存器(TIMx_CCRx)裏面,完成一次捕獲
在這裏插入圖片描述

步驟1:設置輸入捕獲濾波器
步驟2:設置輸入捕獲極性
步驟3:設置輸入捕獲映射通道
步驟4:設置輸入捕獲分頻器
步驟5:捕獲到有效信號開啓中斷
最後看看定時器對應引腳

庫函數的配置

1.輸入捕獲通道初始化函數

在這裏插入圖片描述
在這裏插入圖片描述

捕獲通道
捕獲極性
映射關係
分頻係數
濾波器

2.通道極性設置獨立函數
在這裏插入圖片描述

3.獲取通道捕獲值
在這裏插入圖片描述

輸入捕獲配置步驟
在這裏插入圖片描述

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章