stm32關定時器 STM32定時器TIM3程式

2021-10-13 12:31:51 字數 1869 閱讀 9700

#include "led.h"

#include "delay.h"

#include "key.h"

#include "sys.h"

#include "usart.h"

#include "timer.h"

//stm32開發板實驗8

//定時器中斷實驗

int main(void)

delay_init();     //延時函式初始化

nvic_configuration(); //設定nvic中斷分組2:2位搶占優先順序,2位響應優先順序

//uart_init(9600); //串列埠初始化為9600

led_init();     //led埠初始化

tim3_int_init(4999,7199);//10khz的計數頻率,計數到5000為500ms

while(1)

led0=!led0;

delay_ms(200);

重點分析:tim3_int_init(4999,7199);//10khz的計數頻率,計數到5000為500ms

void tim3_int_init(u16 arr,u16 psc)

tim_timebaseinittypedef  tim_timebasestructure;

nvic_inittypedef nvic_initstructure;

rcc_apb1periphclockcmd(rcc_apb1periph_tim3, enable); //時鐘使能

//定時器tim3初始化

tim_timebasestructure.tim_period = arr; //設定在下乙個更新事件裝入活動的自動重裝載暫存器週期的值

tim_timebasestructure.tim_prescaler =psc; //設定用來作為timx時鐘頻率除數的預分頻值

tim_timebasestructure.tim_clockdivision = tim_ckd_div1; //設定時鐘分割:tdts = tck_tim

tim_timebasestructure.tim_countermode = tim_countermode_up;  //tim向上計數模式

tim_timebaseinit(tim3, &tim_timebasestructure); //根據指定的引數初始化timx的時間基數單位

tim_itconfig(tim3,tim_it_update,enable ); //使能指定的tim3中斷,允許更新中斷

//中斷優先順序nvic設定

nvic_initstructure.nvic_irqchannel = tim3_irqn;  //tim3中斷

nvic_initstructure.nvic_irqchannelpreemptionpriority = 0;  //先佔優先順序0級

nvic_initstructure.nvic_irqchannelsubpriority = 3;  //從優先順序3級

nvic_initstructure.nvic_irqchannelcmd = enable; //irq通道被使能

nvic_init(&nvic_initstructure);  //初始化nvic暫存器

tim_cmd(tim3, enable);  //使能timx

//定時器3中斷服務程式

void tim3_irqhandler(void)   //tim3中斷

if (tim_getitstatus(tim3, tim_it_update) != reset)  //檢查tim3更新中斷發生與否

tim_clearitpendingbit(tim3, tim_it_update  );  //清除timx更新中斷標誌

led1=!led1;

stm32的定時器

stm32一共有8個都為16位的定時器。其中tim6 tim7是基本定時器 tim2 tim3 tim4 tim5是通用定時器 tim1和tim8是高階定時器。1.基本定時器 基本定時器tim6和tim7只具備最基本的定時功能,就是累加的時鐘脈衝數超過預定值時,能觸發中斷或觸發dma請求。由於在晶元...

STM32定時器中斷

本實驗的目的是通過定時器中斷控制led燈的亮滅。筆者所用ide為iar,採用標準庫 3.5韌體庫 通過定時器產生中斷來控制led。ifndef led h define led h include stm32f10x gpio.h include stm32f10x.h include stm32f...

STM32之定時器

stm32f4的定時器分布如下 其中基本定時器包括tim6 tim7,其結構最簡單,也具有最基本的定時功能,一是用於基本定時 產生時基 二是用於驅動dac數模轉換器。其中通用定時器包括time2 time5,time9 time14共10個 通用定時器除了包含基本定時器的功能外還有輸入捕獲 輸出比較...