中断和事件

中断的产生是你所设定的中断源被触发而引起程序跳到你所对应的中断函数去执行。一个中断函数只能对应一个中断源,一个中断源可以被多个事件触发,只要其中一个中断事件被触发,就会引发中断。

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也是。

猜你喜欢

转载自www.cnblogs.com/Start-wyz/p/12560631.html