[STM8] STM8外部中断:如何区分同一PORT中的不同脚,如PD1和PD2

[复制链接]
5490|13
 楼主| car_software 发表于 2013-8-1 19:39 | 显示全部楼层 |阅读模式
因工程需要, 中断用到同一PORT中的两个脚, PD1和PD2 , 设置PORTD为下降沿触发中断:
PD1或PD2 下降沿都能进入以下中断函数中, 但要如何区别具体是哪个脚引起的中断了?
谢谢!

@near @interrupt void EXTI_PORTD_IRQHandler (void)
{

}
yuanquanquan 发表于 2013-8-2 09:47 | 显示全部楼层
这能区分吗?  手册上有这么一句话:当多个连接到同一个中断向量的外部引脚中断被同时选定时候,那么他们是‘逻辑或’的关
系。    你仔细看看
 楼主| car_software 发表于 2013-8-5 08:57 | 显示全部楼层
我感觉应该能区分出来, 要不外部中断就太少了,  A~E ,也就是说STM8的外部中断只有5个, 怎么可能了,  相信ST不会设计出这样SB的芯片来...........
wwchang 发表于 2013-8-5 09:02 | 显示全部楼层
你可以在中断里面判断电平,就知道是哪个引脚 了。
xxiao6130 发表于 2013-8-14 18:25 | 显示全部楼层
怎么判断,我也想知道。
cjhk 发表于 2013-8-14 19:28 | 显示全部楼层
我也想知道如何处理这个问题的   
feilusia 发表于 2013-8-15 09:31 | 显示全部楼层
我买的书上有说明,可以在允许中断之前把引脚值保存到内存,进入中断后再读引脚值,比较后就可以知道哪个脚引起的中断。
wishriver 发表于 2018-2-4 17:29 | 显示全部楼层
挖坟,翻帖子看到这篇求助,楼上几位真的很搞笑。人家问了会就直说得了。这啊 那啊的说不到重点,
在中断函数里直接判断是哪一个引脚电平拉低就可以了
比如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
  {

   }
}
fengfeng的恒 发表于 2018-2-5 09:12 | 显示全部楼层
wishriver 发表于 2018-2-4 17:29
挖坟,翻帖子看到这篇求助,楼上几位真的很搞笑。人家问了会就直说得了。这啊 那啊的说不到重点,
在中断函 ...

如果PD3一直被拉低,这个时候PD4来一个下降沿触发中断呢?
wishriver 发表于 2018-2-7 21:01 | 显示全部楼层
fengfeng的恒 发表于 2018-2-5 09:12
如果PD3一直被拉低,这个时候PD4来一个下降沿触发中断呢?

如果你的PD4是需要中断的,那么你就需要初始化的时候允许中断,然后在中断函数里判断中断引脚是不是PD4,如果是就进PD4的处理,如PD3一直拉低那得分为两种情况,一种是pd3是中断引脚,此时pd3会触发一次(下降沿触发模式的话)然后后边再中断就不会进入到PD3的判断中来了
fengfeng的恒 发表于 2018-2-8 09:08 | 显示全部楼层
wishriver 发表于 2018-2-7 21:01
如果你的PD4是需要中断的,那么你就需要初始化的时候允许中断,然后在中断函数里判断中断引脚是不是PD4, ...

假如PD3与PD4都是中断引脚,设置外下降沿触发,当两个引脚都是低电平的时候不会触发,但是如果一个时刻,比如PD4变高然后又变低了,这个时候肯定会进中断,但是无法得知是哪个IO触发的,因为PD3变高又变低也同样会触发。
caijie001 发表于 2018-2-9 09:15 | 显示全部楼层
car_software 发表于 2013-8-5 08:57
我感觉应该能区分出来, 要不外部中断就太少了,  A~E ,也就是说STM8的外部中断只有5个, 怎么可能了,  相信ST ...

在里面判断io的电平,,,,,
caijie001 发表于 2018-2-9 09:15 | 显示全部楼层
cjhk 发表于 2013-8-14 19:28
我也想知道如何处理这个问题的

在进入中断判断io电平,确定是哪个io
caijie001 发表于 2018-2-9 09:16 | 显示全部楼层
fengfeng的恒 发表于 2018-2-5 09:12
如果PD3一直被拉低,这个时候PD4来一个下降沿触发中断呢?

初始化触发方式。。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

44

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部