F429 外設之定時器(基本定時器)

2021-08-21 11:36:34 字數 1821 閱讀 9702

定時器功能:定時    定時比較(pwm波)    輸入捕獲    互補輸出(電機)

定時器分類:基本定時器    通用定時器    高階定時器

定時器資源:429有2個高階定時器    10個通用定時器    2個基本定時器

計數器解析度:計數最大值 2^16/32

基本定時器

計數器16位,只能向上計數 只有tim6 tim7

沒有外部gpio,是內部資源,只能用來定時

時鐘來自pclk1    可以實現1~65535   分頻

定時時間計算

psc = 9000-1,定時頻率 = 90m/(psc+1) = 10000hz

arr = 4999 從0計數到4999 共計數5000次

t = 5000/10000 = 0.5s

tim結構體

uint16_t 

tim_clockdivision      外部輸入時鐘分頻因子,基本定時器沒有

uint16_t 

tim_countermode     計數模式:向上計數/向下計數

uint32_t 

tim_period                自動裝載值

uint16_t 

tim_prescaler            分頻因子

uint8_t 

tim_repetitioncounter    重複計數器,基本定時器沒有

基本定時器只需要配置

tim_prescaler    

tim_countermode(預設向上計數)

tim_period  

.c檔案

static void timx_nvic_configuration(void)

static void tim_mode_config(void)

/** * @brief 初始化基本定時器定時,1ms產生一次中斷

* @param 無

* @retval 無

*/void timx_configuration(void)

.h檔案

#ifndef __basic_tim_h

#define __basic_tim_h

#include "stm32f4xx.h"

#define basic_tim tim6

#define basic_tim_clk rcc_apb1periph_tim6

#define basic_tim_irqn tim6_dac_irqn

#define basic_tim_irqhandler tim6_dac_irqhandler

void timx_configuration(void);

#endif /* __basic_tim_h */

.it中斷服務函式

注意:如果不清除標誌位則會一直呼叫中斷服務函式,無限迴圈

tim_clearitpendingbit(basic_tim , tim_it_update);
void  basic_tim_irqhandler (void)

}

定時器 STM32定時器 基本定時器1

我是鼎!定時器時鐘一定要明確其中有哪些變數。上圖為stm407資料手冊摘出來的,可能看不清楚,其實就蘊含了幾點資訊。注意一點,我們看圖2,我們以apb1舉例,上面掛著很多的外設,包括usart1 adc 以及定時器,我們知道apb1上面最高時鐘頻率為84mhz,但是定時器的時鐘是要在此基礎上乘2,也...

基本定時器

一 程式設計要點 1 初始化時基結構體 2 配置中斷優先順序 3 寫中斷服務函式 4 寫主函式 二 定時時間計算 定時時間 中斷週期 中斷次數 以1s為例 tim prescaler timxpsc 暫存器 tim period arr 自動重裝載暫存器 timxclk 系統時鐘 ck clk 1 ...

基本定時器

按定時器的功能可以分為定時,輸出比較 輸出pwm波 輸入捕獲 測量輸入訊號的脈衝寬度,頻率 互補輸出,按照定時器分類可以分為基本定時器 只有定時功能 通用定時器 有前三個功能 高階定時器 有全部功能 對於我們的f103系列有2個高階定時器tim1和tim8,4個通用定時器tim2 3 4 5,2個基...