解決STM32開啟定時器時立即進入一次中斷程式問題

2021-10-01 15:49:56 字數 1206 閱讀 7687

配置stm32定時器時,定時器中斷使能、定時器使能、清除更新中斷標誌位,三者不同順序程式執行時有不同效果,具體如下:

tim_clearitpendingbit(tim1, tim_it_update); //清除更新中斷請求位

tim_itconfig(tim1, tim_it_update, enable); //使能定時器1更新中斷

tim_cmd(tim1, enable);                   //啟動定時器

(1)。。。。。。不會立即進入更新中斷程式。

tim_clearitpendingbit(tim1, tim_it_update);//清除更新中斷請求位

tim_cmd(tim1, enable); 

tim_itconfig(tim1, tim_it_update, enable);//使能定時器1更新中斷

(2)。。。。。。不會立即進入更新中斷程式。

tim_cmd(tim1, enable);

tim_clearitpendingbit(tim1, tim_it_update);//清除更新中斷請求位

tim_itconfig(tim1, tim_it_update, enable);//使能定時器1更新中斷

(3)。。。。。。不會立即進入更新中斷程式。

tim_cmd(tim1, enable);

tim_itconfig(tim1, tim_it_update, enable);//使能定時器1更新中斷

tim_clearitpendingbit(tim1, tim_it_update);//清除更新中斷請求位

(4)。。。。。。立即進入更新中斷程式。

tim_itconfig(tim1, tim_it_update, enable);//使能定時器1更新中斷

tim_clearitpendingbit(tim1, tim_it_update);//清除更新中斷請求位

tim_cmd(tim1, enable);  

(5)。。。。。。立即進入更新中斷程式。

tim_itconfig(tim1, tim_it_update, enable);//使能定時器1更新中斷

tim_cmd(tim1, enable); 

tim_clearitpendingbit(tim1, tim_it_update);//清除更新中斷請求位

(6)。。。。。。立即進入更新中斷程式。

參考:

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

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 co...

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...