OpenEdv-开源电子网

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

STM32F103VBT6 外部中断进不去中断

[复制链接]

77

主题

203

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1208
金钱
1208
注册时间
2017-8-25
在线时间
167 小时
发表于 2020-10-26 14:41:10 | 显示全部楼层 |阅读模式
3金钱
//外部中断初始化

void EXTIX_Init(void)
{
    EXTI_InitTypeDef EXTI_InitStructure;
    NVIC_InitTypeDef NVIC_InitStructure;
    GPIO_InitTypeDef GPIO_InitStructure;
   
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
   
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6|GPIO_Pin_7;
    GPIO_Init(GPIOD, &GPIO_InitStructure);
   
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3;
    GPIO_Init(GPIOB, &GPIO_InitStructure);
   
    //GPIOC.5 ÖжÏÏßÒÔ¼°Öжϳõʼ»¯ÅäÖÃ
      GPIO_EXTILineConfig(GPIO_PortSourceGPIOD,GPIO_PinSource6);

      EXTI_InitStructure.EXTI_Line=EXTI_Line6;
      EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;   
      EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;//ϽµÑØ´¥·¢
      EXTI_InitStructure.EXTI_LineCmd = ENABLE;
      EXTI_Init(&EXTI_InitStructure);         //¸ù¾ÝEXTI_InitStructÖÐÖ¸¶¨µÄ²ÎÊý³õʼ»¯ÍâÉèEXTI¼Ä´æÆ÷
   
    //GPIOC.5 ÖжÏÏßÒÔ¼°Öжϳõʼ»¯ÅäÖÃ
      GPIO_EXTILineConfig(GPIO_PortSourceGPIOD,GPIO_PinSource7);

      EXTI_InitStructure.EXTI_Line=EXTI_Line7;
      EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;   
      EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;//ϽµÑØ´¥·¢
      EXTI_InitStructure.EXTI_LineCmd = ENABLE;
      EXTI_Init(&EXTI_InitStructure);         //¸ù¾ÝEXTI_InitStructÖÐÖ¸¶¨µÄ²ÎÊý³õʼ»¯ÍâÉèEXTI¼Ä´æÆ÷

    //GPIOA.15      ÖжÏÏßÒÔ¼°Öжϳõʼ»¯ÅäÖÃ
      GPIO_EXTILineConfig(GPIO_PortSourceGPIOB,GPIO_PinSource3);

      EXTI_InitStructure.EXTI_Line=EXTI_Line3;
      EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;   
      EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;
      EXTI_InitStructure.EXTI_LineCmd = ENABLE;
      EXTI_Init(&EXTI_InitStructure);          //¸ù¾ÝEXTI_InitStructÖÐÖ¸¶¨µÄ²ÎÊý³õʼ»¯ÍâÉèEXTI¼Ä´æÆ÷

      NVIC_InitStructure.NVIC_IRQChannel = EXTI0_IRQn;            //ʹÄܰ´¼üËùÔÚµÄÍⲿÖжÏͨµÀ
      NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x06;    //ÇÀÕ¼ÓÅÏȼ¶2
      NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x01;                    //×ÓÓÅÏȼ¶1
      NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;                                //ʹÄÜÍⲿÖжÏͨµÀ
      NVIC_Init(&NVIC_InitStructure);        //¸ù¾ÝNVIC_InitStructÖÐÖ¸¶¨µÄ²ÎÊý³õʼ»¯ÍâÉèNVIC¼Ä´æÆ÷

       NVIC_InitStructure.NVIC_IRQChannel = EXTI15_10_IRQn;            //ʹÄܰ´¼üËùÔÚµÄÍⲿÖжÏͨµÀ
      NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x06;    //ÇÀÕ¼ÓÅÏȼ¶2£¬
      NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x00;                    //×ÓÓÅÏȼ¶1
      NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;                                //ʹÄÜÍⲿÖжÏͨµÀ
      NVIC_Init(&NVIC_InitStructure);

}
//    中断程序


void EXTI3_IRQHandler(void)
{
    if(EXTI_GetITStatus(EXTI_Line3) != RESET)
    {
        
        EXTI_ClearITPendingBit(EXTI_Line3);
    }
}


void EXTI15_10_IRQHandler(void)
{
   
    if(EXTI_GetITStatus(EXTI_Line6) != RESET)
    {
        
        EXTI_ClearITPendingBit(EXTI_Line6);
    }
   
    if(EXTI_GetITStatus(EXTI_Line7) != RESET)
    {
        
        EXTI_ClearITPendingBit(EXTI_Line7);
    }
}



中断一直进不去,哪位大神知道是什么问题


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

使用道具 举报

11

主题

2154

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4947
金钱
4947
注册时间
2015-1-10
在线时间
620 小时
发表于 2020-10-26 15:00:01 | 显示全部楼层
中断10~15的中断处理函数你写了6和7,这怎么可能进得去
回复

使用道具 举报

77

主题

203

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1208
金钱
1208
注册时间
2017-8-25
在线时间
167 小时
 楼主| 发表于 2020-10-26 15:31:22 | 显示全部楼层
阿侑kevin 发表于 2020-10-26 15:00
中断10~15的中断处理函数你写了6和7,这怎么可能进得去

中断3还是进不去
回复

使用道具 举报

77

主题

203

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1208
金钱
1208
注册时间
2017-8-25
在线时间
167 小时
 楼主| 发表于 2020-10-26 15:37:00 | 显示全部楼层
阿侑kevin 发表于 2020-10-26 15:00
中断10~15的中断处理函数你写了6和7,这怎么可能进得去

这是我改过来的
QQ截图20201026153523.png
回复

使用道具 举报

11

主题

2154

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4947
金钱
4947
注册时间
2015-1-10
在线时间
620 小时
发表于 2020-10-26 16:12:22 | 显示全部楼层

GPIO的复用时钟开了吗?
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);
回复

使用道具 举报

77

主题

203

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1208
金钱
1208
注册时间
2017-8-25
在线时间
167 小时
 楼主| 发表于 2020-10-28 13:11:18 | 显示全部楼层
阿侑kevin 发表于 2020-10-26 16:12
GPIO的复用时钟开了吗?
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);

开了,不然另外两路就使用不了了
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-21 04:33

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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