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

如何区分触发STM32 外部中断的GPIO引脚?

[复制链接]
yukang1744 提问时间:2016-10-12 15:30 /
外部中断EXIT0与GPIO连接图见附件。PA0中断、PB0中断都会进入EXTI0_IRQHandler函数,在该中断函数里能区分是哪个引脚触发中断吗?

外部中断与GPIO连接图

外部中断与GPIO连接图
收藏 1 评论10 发布时间:2016-10-12 15:30

举报

10个回答
zhangdaijin 回答时间:2016-10-12 16:06:45
mark0668 回答时间:2016-10-12 16:14:30
这图这么多个引脚是只能设置一个脚为外部中断,中断线为0  也就对应PX0 的脚,不能设置多个比如PA0,PB0不能这样设置,可以PA0,PB1,PC2,PA3
高二毛 回答时间:2016-10-12 16:17:27
楼上正解。。
xmshao 回答时间:2016-10-12 17:18:42
软件上没法直接区分。

个别情况下,使用不同脚触发方式或触发时间点结合电平检测应有有机会。

当然,如果不是特别需要,没必要这样做。每个GPIO都可以触发EXTI,一般来讲,错开使用很方便。
lvyunzeng 回答时间:2016-10-13 08:34:54
在设计是尽量避免都是PX0或者同一个中断源。实在是硬件电路设计在一起了。那就使用电平检测的办法。进入中断后读取IO口线的数据,保存,置中断标志位。在主程序中检测中断标志位的状态进行处理。此方法有可能遗漏快速中断
yukang1744 回答时间:2016-10-13 08:52:54
接收大家建议:设计中断时,GPIO引脚错开使用。
wishriver 回答时间:2018-2-28 19:54:33
挖坟,翻帖子看到这篇求助,楼上几位真的很搞笑。
在中断函数里直接判断是哪一个引脚电平拉低就可以了
堂堂ST出品的芯片怎么可能弱智到一个端口的引脚无法同时中断呢。
唉,最可怕的就是以讹传讹
正解是
比如Pd端口中断了,具体来看一下是哪PD3否就这样写
INTERRUPT_HANDLER(EXTI_PORTD_IRQHandler, 6)
{
  /* In order to detect unexpected events during development,
     it is recommended to set a breakpoint on the following instruction.
  */

   if(GPIO_ReadInputPin(GPIOD , GPIO_PIN_3) == RESET)   //判断是否是PD3
  {

   }
}
fantasyhpu 回答时间:2019-8-14 17:38:19
又被挖出来了。
到底该听谁的?
andeyqi 回答时间:2019-8-14 17:49:53
读取下相应的引脚状态
12下一页
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版