你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

查看: 15784|回复: 6

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

[复制链接]

38

主题

70

回帖

0

蝴蝶豆

中级会员

最后登录
2020-12-1
发表于 2012-5-13 13:12:05 | 显示全部楼层 |阅读模式
我想用一组外部脉冲的上升沿触发外部中断,但是只是一次中断,中断一次就结束,怎么做呢?
用过很多方法都是错的,
 
回复

使用道具 举报

21

主题

30

回帖

0

蝴蝶豆

初级会员

最后登录
1970-1-1
发表于 2012-5-13 14:31:20 | 显示全部楼层

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

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

使用道具 举报

38

主题

70

回帖

0

蝴蝶豆

中级会员

最后登录
2020-12-1
 楼主| 发表于 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);
回复 支持 反对

使用道具 举报

0

主题

1

回帖

0

蝴蝶豆

新手上路

最后登录
1970-1-1
发表于 2012-10-17 19:29:44 | 显示全部楼层

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

EXTI->IMR &= 0X00000000;  //屏蔽外部中断
回复 支持 反对

使用道具 举报

9

主题

210

回帖

0

蝴蝶豆

高级会员

最后登录
2018-10-12
发表于 2015-12-3 10:56:15 | 显示全部楼层
王波*_* 发表于 2012-10-17 19:29
EXTI->IMR &= 0X00000000;  //屏蔽外部中断

这个是关闭所有的外部中断,如果有多路外部中断,怎么去关闭单路外部中断呢?
回复 支持 反对

使用道具 举报

134

主题

4489

回帖

239

蝴蝶豆

版主

最后登录
2020-12-9
发表于 2015-12-3 14:02:39 | 显示全部楼层
NVIC_DisableIRQ,103的在stm32f10x.h中定义的。
回复 支持 反对

使用道具 举报

4

主题

605

回帖

0

蝴蝶豆

金牌会员

最后登录
2020-10-12
发表于 2015-12-3 21:10:46 来自手机 | 显示全部楼层
关闭丨O口中断功能
回复 支持 反对

使用道具 举报

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版