OpenEdv-开源电子网

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

STM32F103外部中断会一直进入

[复制链接]

3

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
74
金钱
74
注册时间
2016-11-25
在线时间
24 小时
发表于 2020-3-5 14:37:12 | 显示全部楼层 |阅读模式
1金钱
我用STM32板子做工控,外部中断下降沿进入,打开两个定时器,由于工业器件要求,很难让开关做到进入中断后马上高电平

故会保持一段时间低电平,而这个情况导致偶尔会再次进入中断,或连续进入(不稳定),程序写的应该是下降沿进入中断,而不是低电平进入,

测试板子是MINI 2.0,PA0按键板上默认应该是配置为IPD然后按下接VCC,不过我用的是外部开关,用的是IPU然后通GND进入中断

有没有高手来看看

初始化如下

void KEY_Init(void)
{
        GPIO_InitTypeDef GPIO_InitStructure;
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);

        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
//        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
        GPIO_Init(GPIOA , &GPIO_InitStructure);
}

void EXTI_InitConfig(void)
{
        EXTI_InitTypeDef EXTI_InitStructure;
  /* Connect Key Button EXTI Line to Key Button GPIO Pin */
  GPIO_EXTILineConfig(GPIO_PortSourceGPIOA, GPIO_PinSource0);

  /* Configure Key Button EXTI Line to generate an interrupt on falling edge */  
  EXTI_InitStructure.EXTI_Line = EXTI_Line0;
  EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
  EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;
  EXTI_InitStructure.EXTI_LineCmd = ENABLE;
  EXTI_Init(&EXTI_InitStructure);
}


void EXTI0_IRQHandler(void)
{               
                EXTI_ClearITPendingBit(EXTI_Line0);
                delay_ms(50);
                if(PAin(0)==0)
                {
                        PAout(8)=0;
                        PDout(2)=0;
                TIM_Cmd(TIM2, ENABLE); //开启时钟
                        TIM_Cmd(TIM3, ENABLE);
                }

}

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

使用道具 举报

5

主题

424

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1020
金钱
1020
注册时间
2014-9-4
在线时间
199 小时
发表于 2020-3-5 16:05:39 | 显示全部楼层
首先不管怎么样,,一般不要在中断里写延时
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-21 14:50

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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