中斷的產生是你所設定的中斷源被觸發而引起程序跳到你所對應的中斷函數去執行。一個中斷函數只能對應一個中斷源,一個中斷源可以被多個事件觸發,只要其中一個中斷事件被觸發,就會引發中斷。
NVIC是配置中斷源和使能中斷的控制器,配置過程:
1.配置優先級組,2.選擇要使能中斷源,3配置搶斷優先級和子優先級,4.配置使能中斷 5.初始化NVIC
配置好NVIC之后,還不能產生中斷,要開啟觸發中斷源的事件。但事件產生,才會產生中斷跳到中斷函數去執行。
中斷源名在stm32f10x.h中,中斷函數名在startup_stm32fxxx.s中
外部中斷和事件也是中斷和事件中的一部分,
EXTI外部中斷/事件控制器,Px0->EXTI0(X,A,B,C,D,E,F,G),以此類推Px15->EXTI15,EXTI16節到PVD輸出,EXTI17RTC鬧鍾事件,EXTI18USB喚醒事件。
外部中斷的使用過程:
1.配置對應的IO引腳,(浮空輸入,開啟引腳時鍾),2.開啟AFIO時鍾,選擇信號源的引腳,3.配置外部中斷寄存器(1.那個外部中斷源,2.是要產生事件還是產生中斷,3.產生中斷的方式,4.是否是能),初始化EXTI
5.配置NVIC
外部中斷源EXTI0_IRQ,EXTI1_IRQ,EXTI2_IRQ,EXTI3_IRQ,EXTI4_IRQ,EXTI9_5_IRQ,EXTI5_10_IRQ,其中5-9公用一個中斷源,15-10也是。