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

如何区分触发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管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版