hai325-289934 发表于 2012-5-13 13:12:05

触发一次外部中断后,怎么在中断子程序中关闭外部中断

我想用一组外部脉冲的上升沿触发外部中断,但是只是一次中断,中断一次就结束,怎么做呢?
用过很多方法都是错的,
 

zengwh 发表于 2012-5-13 14:31:20

RE:触发一次外部中断后,怎么在中断子程序中关闭外部中断

你是说你的程序只有一次中断,过后就没有响应中断了? 是这样吗?建议贴出代码来让坛中高手具体看看出了什么问题。

hai325-289934 发表于 2012-5-13 16:39:31

RE:触发一次外部中断后,怎么在中断子程序中关闭外部中断

我我想确认有个8M的脉冲已经输出,我用这个8M的外部脉冲的一个上升沿触发STM32外部中断PA15,中断一次就立即关闭,但是我进入中断后出不来了,好像是脉冲的频率太高,一直中断,所以我想是否有办法在中断中结束中断

void EXTI15_10_IRQHandler(void)
{
if(EXTI_GetITStatus(EXTI_Line15)!=RESET)
{
Flag=1
GPIO_SetBits(GPIOB,GPIO_Pin_13);
GPIO_SetBits(GPIOB,GPIO_Pin_12);
EXTI_ClearITPendingBit(EXTI_Line15);

}
}
NVIC_InitStructure.NVIC_IRQChannel = EXTI15_10_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;                // 抢占优先级别1
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1; //响应优先级别1
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);

王波*_* 发表于 2012-10-17 19:29:44

回复:触发一次外部中断后,怎么在中断子程序中关闭外部中断

EXTI->IMR &= 0X00000000;  //屏蔽外部中断

紫嫣0302 发表于 2015-12-3 10:56:15

王波*_* 发表于 2012-10-17 19:29
EXTI->IMR &= 0X00000000;  //屏蔽外部中断

这个是关闭所有的外部中断,如果有多路外部中断,怎么去关闭单路外部中断呢?

发表于 2015-12-3 14:02:39

NVIC_DisableIRQ,103的在stm32f10x.h中定义的。

cos12a-21701 发表于 2015-12-3 21:10:46

关闭丨O口中断功能
页: [1]
查看完整版本: 触发一次外部中断后,怎么在中断子程序中关闭外部中断