STM32中断与事件的区别
在我们配置中断时,时常会困惑于什么是事件模式。
EXTI_InitStruct.EXTI_Mode 怎样选择,是选择中断模式还是事件模式???
EXTI_InitStruct.EXTI_Line=EXTI_Line0;
EXTI_InitStruct.EXTI_LineCmd=ENABLE;
EXTI_InitStruct.EXTI_Mode=EXTI_Mode_Interrupt;//事件控制器模式为中断
EXTI_InitStruct.EXTI_Trigger=EXTI_Trigger_Rising;//触发方式为上升沿触发
EXTI_Init(&EXTI_InitStruct);
上面代码是为了配置事件管理。
EXTI表示事件管理,意思是将事件区分为中断事件还是非中断事件。
事件控制器会将触发事件分为中断事件和非中断事件
中断必须有中断服务程序,中断过程必须有CPU的参与。
同样一个事件可以设置为非中断事件,触发其他不需要CPU参与的硬件操作过程。例如由GPIO的跳变来触发DMA过程,ADC采样转换过程等。此时就可以将 EXTI_InitStruct.EXTI_Mode 设置为EXTI_Mode_Event。