OpenEdv-开源电子网

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

请教关于STM32F103不会进入外部中断

[复制链接]

1

主题

1

帖子

0

精华

新手入门

积分
8
金钱
8
注册时间
2019-9-27
在线时间
3 小时
发表于 2019-9-27 10:58:07 | 显示全部楼层 |阅读模式
1金钱
     不会进入外部中断服务程序,直接上码,调了一个上午了,

       GPIO_InitTypeDef  GPIO_InitStructure;
        //A口按键
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);            //使能PA端口时钟
         
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;                            
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD;          //输入下拉
        GPIO_Init(GPIOA, &GPIO_InitStructure);                             //初始化GPIOA.0

        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);

        EXTI_InitTypeDef EXTI_InitStructure;
        NVIC_InitTypeDef NVIC_InitStructure;
       
          RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);       

        GPIO_EXTILineConfig(GPIO_PortSourceGPIOA,GPIO_PinSource0);

          EXTI_InitStructure.EXTI_Line = EXTI_Line0;
        EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;       
          EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising;
          EXTI_Init(&EXTI_InitStructure);               
       
          NVIC_InitStructure.NVIC_IRQChannel = EXTI0_IRQn;                       
          NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2;       
          NVIC_InitStructure.NVIC_IRQChannelSubPriority = 2;       
          NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;                                                       
          NVIC_Init(&NVIC_InitStructure);

void EXTI0_IRQHandler(void)
{
        /*if( GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_0) == 1)
        {
                TimerCount = 0;
        }
        else if( GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_0) == 0)
        {
                PowerKeyRisingTime = TimerCount;
        }*/
       
        if(EXTI_GetITStatus(EXTI_Line0) != RESET)
        {
                //delay_ms(10);//消抖
         
                EXTI_ClearITPendingBit(EXTI_Line0);
        }

}
仿真的时候通过按下按键能进入以下if里面的断点,
                if( GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_0) == 1)
                {
                        GPIO_ResetBits(GPIOB, GPIO_Pin_0);
                }
但是不能进入中断。有空的人帮忙看下


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

使用道具 举报

2

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
160
金钱
160
注册时间
2016-10-5
在线时间
30 小时
发表于 2019-9-27 15:43:30 | 显示全部楼层
没看到你使能中断啊............
加上试一下
EXTI_InitStructure.EXTI_LineCmd = ENABLE;                                        // 使能中断
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-8 19:08

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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