OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 8609|回复: 6

求教外部中断问题,一个中断信号使2个中断服务函数都响应

[复制链接]

2

主题

12

帖子

0

精华

新手上路

积分
41
金钱
41
注册时间
2012-9-28
在线时间
0 小时
发表于 2012-10-10 21:16:54 | 显示全部楼层 |阅读模式

PA2和PA4口设为下拉输入,上升沿触发中断..但是PA2口无论上升沿或者下降沿,都使2个中断服务函数都触发...不知道为啥
真心求教
代码如下
void EXTIX_Init(void)
{
   GPIO_InitTypeDef GPIO_InitStructure;
  EXTI_InitTypeDef EXTI_InitStructure;
  NVIC_InitTypeDef NVIC_InitStructure;


   GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable , ENABLE); //关闭jtag

   RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_AFIO,ENABLE);

   GPIO_InitStructure.GPIO_Pin  = GPIO_Pin_2|GPIO_Pin_4;
   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD;
   GPIO_Init(GPIOA, &GPIO_InitStructure);

  //GPIOA.2
   GPIO_EXTILineConfig(GPIO_PortSourceGPIOA,GPIO_PinSource2);

   EXTI_InitStructure.EXTI_Line=EXTI_Line2;
   EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; 
   EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising;
   EXTI_InitStructure.EXTI_LineCmd = ENABLE;
   EXTI_Init(&EXTI_InitStructure);

 //GPIOA.4
   GPIO_EXTILineConfig(GPIO_PortSourceGPIOA,GPIO_PinSource4);

   EXTI_InitStructure.EXTI_Line=EXTI_Line4;
   EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; 
   EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising;
   EXTI_InitStructure.EXTI_LineCmd = ENABLE;
   EXTI_Init(&EXTI_InitStructure);


   NVIC_InitStructure.NVIC_IRQChannel = EXTI2_IRQn;  
   NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x03; 
   NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x01;    
   NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;      
   NVIC_Init(&NVIC_InitStructure);
 
   NVIC_InitStructure.NVIC_IRQChannel = EXTI4_IRQn;  
   NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x03; 
   NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x02;    
   NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;     
   NVIC_Init(&NVIC_InitStructure);   
}

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2012-10-10 21:35:56 | 显示全部楼层
是不是电路硬件有问题?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

2

主题

12

帖子

0

精华

新手上路

积分
41
金钱
41
注册时间
2012-9-28
在线时间
0 小时
 楼主| 发表于 2012-10-10 22:34:28 | 显示全部楼层
起初用PA3,和PA4口.直接用飞线把3.3v接到PA3口模拟中断信号,,上就发生这种问题.
后来改成PA2和PA4,就好了,但是接到继电器上又发生了....
难道是有干扰?
即使有干扰的话,PA2的信号也不能触发PA4的中断吧?...
PS:新手啥都不懂...
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2012-10-10 23:15:16 | 显示全部楼层
你的PA4怎么接的?
不会是浮空吧?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

2

主题

12

帖子

0

精华

新手上路

积分
41
金钱
41
注册时间
2012-9-28
在线时间
0 小时
 楼主| 发表于 2012-10-11 19:25:18 | 显示全部楼层
PA4什么都不接.

貌似还是干扰的问题?
始终解决不了,最后只好在中断服务函数里加了个判断PA2和PA4口电平的语句,,,,
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2012-10-11 21:49:34 | 显示全部楼层
PA4接个上拉电阻试试
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

2

主题

12

帖子

0

精华

新手上路

积分
41
金钱
41
注册时间
2012-9-28
在线时间
0 小时
 楼主| 发表于 2012-10-12 20:27:16 | 显示全部楼层
接了一个2.2K的上拉电阻也是不行,,,凑合用了
多谢原子哥了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-20 04:04

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表