通過定時器中斷配置,每500ms中斷一次,然後中斷服務函式中控制led實現led1狀態取反(閃爍)。
tout(溢位時間)=(arr+1)(psc+1)/tclk
1.定時器中斷實現步驟
(1)能定時器時鐘
rcc_apb1periphclockcmd();
(2)初始化定時器,配置arr,psc
tim_timebaseinit();
(3)開啟定時器中斷,配置nvic
void tim_itconfig();
nvic_init();
(4)使能定時器
tim_cmd();
(5)編寫中斷服務函式
timx_irqhandler();
main.c
#include "key.h"
#include "led.h"
#include "timer.h"
#include "sys.h"
#include "delay.h"
int main(void)
}
timer.c
#include "timer.h"
#include "led.h"
void tim3_int_init(u16 arr,u16 psc)
void tim3_irqhandler(void) //tim3 中斷
}
timer.h
#ifndef __timer__
#define __timer__
#include "sys.h"
void tim3_int_init(u16 arr,u16 psc);
#endif
stm32時鐘系統中斷處理
中斷對於開發嵌入式系統來講的地位絕對是毋庸置疑的,在c51微控制器時代,一共只有5個中斷,其中2個外部中斷,2個定時 計數器中斷和乙個串列埠中斷,但是在stm32中,中斷數量大大增加,而且中斷的設定也更加複雜。今天就將來 一下關於stm32中的中斷系統。1 基本概念 arm coetex m3核心共...
STM32時鐘配置
大家都知道在使用微控制器時,時鐘速度決定於外部晶振或內部rc振盪電路的頻率,是不可以改變的。而arm的出現打破了這一傳統的法則,可以通過軟體隨意改變時鐘速度。這一出現讓我們的設計更加靈活,但是也給我們的設計增加了複雜性。為了讓使用者能夠更簡單的使用這一功能,stm32的庫函式已經為我們設計的更加簡單...
STM32時鐘系統
下面我們根據這張圖說說有關stm32時鐘系統的那些事 io uint32 t cr hsi,hse,css,pll等的使能和就緒標誌位 io uint32 t cfgr pll等的時鐘源選擇,分頻係數設定 io uint32 t ahbenr dma,sdio等時鐘使能 io uint32 t ap...