
那个中断已经被触发了,你要做的只有是清中断
标志位:\x0d\x0a EXTI_ClearITPendingBit(EXTI_Line14)\x0d\x0aEXTI_ClearFlag(EXTI_Line14)\x0d\x0a非要关的话,我觉得这样就关了\x0d\x0aEXTI_InitStructure.EXTI_Line = EXTI_Line14\x0d\x0aEXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt\x0d\x0aEXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling\x0d\x0aEXTI_InitStructure.EXTI_LineCmd = DISABLE//ENABLE\x0d\x0aEXTI_Init(&EXTI_InitStructure)1、一般来说单片机的中断发生有两个条件,一是中断标志位置位,二是中断允许,
如果这两个条件都满足则进入中断,因为正常情况下中断一直是允许的,那么只能通过标志位来区分是否有中断挂起,\x0d\x0a2、如果进入中断不清除标志位,那么这一中断服务程序结束后由于标志位还是置位的并且中断是允许的,那么还会再次进入该中断,
就会发生一直在执行中断程序的情况\x0d\x0a3、周期性中断是由定时器辅助完成的,只要定时时间到,硬件就会自动置位标志位,这时中断发生,定时器还在运行,与中断处理是并行的没有冲突,因此周期性的中断不是从中断标志位清零开始的。\x0d\x0a4、如果中断程序没有执行完并且一下个中断又来了,那么硬件还是会自动置位标志位的,如果在这之前已经清零标志位那么中断结束后会再进入一次该中断,如果这时还没有清除中断标志位,则第二个1毫秒中断无效。
评论列表(0条)