OpenEdv-开源电子网

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

请教一下大虾,我的中断函数EXTI9_5_IRQHandle和EXTI15_10_IRQHandle函数无法进入

[复制链接]

9

主题

147

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
376
金钱
376
注册时间
2012-11-7
在线时间
35 小时
发表于 2013-4-21 08:01:47 | 显示全部楼层 |阅读模式

请各位朋友帮看看,我的中断函数EXTI9_5_IRQHandle和EXTI15_10_IRQHandle函数无法进入,我用软仿真看编译后没有对应的汇编,编译等级为0级,谢谢大家!
#include "EXTIX_Init.h"

void EXTIX_Init(void)
{
        GPIO_InitTypeDef GPIO_InitStructure;
        EXTI_InitTypeDef EXTI_InitStructure;
        NVIC_InitTypeDef NVIC_InitStructure;

        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
        GPIO_InitStructure.GPIO_Pin=GPIO_Pin_All;
        GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
        GPIO_InitStructure.GPIO_Speed=GPIO_Speed_10MHz;
        GPIO_Init(GPIOB,&GPIO_InitStructure);

        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
        GPIO_InitStructure.GPIO_Pin=GPIO_Pin_All;
        GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING;
        GPIO_Init(GPIOA,&GPIO_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_Falling;
        EXTI_InitStructure.EXTI_LineCmd=ENABLE;
        EXTI_Init(&EXTI_InitStructure);

        GPIO_EXTILineConfig(GPIO_PortSourceGPIOA,GPIO_PinSource5);

        EXTI_InitStructure.EXTI_Line=EXTI_Line5;
        EXTI_InitStructure.EXTI_Mode=EXTI_Mode_Interrupt;
        EXTI_InitStructure.EXTI_Trigger=EXTI_Trigger_Falling;
        EXTI_InitStructure.EXTI_LineCmd=ENABLE;
        EXTI_Init(&EXTI_InitStructure);

        GPIO_EXTILineConfig(GPIO_PortSourceGPIOA,GPIO_PinSource10);

        EXTI_InitStructure.EXTI_Line=EXTI_Line10;
        EXTI_InitStructure.EXTI_Mode=EXTI_Mode_Interrupt;
        EXTI_InitStructure.EXTI_Trigger=EXTI_Trigger_Falling;
        EXTI_InitStructure.EXTI_LineCmd=ENABLE;
        EXTI_Init(&EXTI_InitStructure);

        NVIC_InitStructure.NVIC_IRQChannel=EXTI0_IRQn;
        NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0x02;
        NVIC_InitStructure.NVIC_IRQChannelSubPriority=0x03;
        NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;
        NVIC_Init(&NVIC_InitStructure);

        NVIC_InitStructure.NVIC_IRQChannel=EXTI9_5_IRQn;
        NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0x02;
        NVIC_InitStructure.NVIC_IRQChannelSubPriority=0x01;
        NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;
        NVIC_Init(&NVIC_InitStructure);

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

void EXTI0_IRQHandler(void)
{
        PBout(0)=!PBout(0);
        EXTI_ClearITPendingBit(EXTI_Line0);
}

void EXTI1_IRQHandler(void)
{
        PBout(1)=!PBout(1);
        EXTI_ClearITPendingBit(EXTI_Line1);
}

void EXTI2_IRQHandler(void)
{
        PBout(2)=!PBout(2);
        EXTI_ClearITPendingBit(EXTI_Line2);
}

void EXTI9_5_IRQHandle(void)
{
        if(EXTI_GetITStatus(EXTI_Line5) !=RESET)
        {
                PBout(5)=!PBout(5);
                EXTI_ClearITPendingBit(EXTI_Line5);
        }
}

void EXTI15_10_IRQHandle(void)
{
        if(EXTI_GetITStatus(EXTI_Line10) !=RESET)
        {
                PBout(10)=!PBout(10);
                EXTI_ClearITPendingBit(EXTI_Line10);
        }
}

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

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

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

使用道具 举报

9

主题

147

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
376
金钱
376
注册时间
2012-11-7
在线时间
35 小时
 楼主| 发表于 2013-4-21 11:45:22 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
没有开优化,用的是4.7a版本
回复 支持 反对

使用道具 举报

9

主题

147

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
376
金钱
376
注册时间
2012-11-7
在线时间
35 小时
 楼主| 发表于 2013-4-21 13:25:25 | 显示全部楼层
请教原子,我程序应该没问题吧
回复 支持 反对

使用道具 举报

1

主题

4

帖子

0

精华

新手入门

积分
28
金钱
28
注册时间
2012-12-24
在线时间
0 小时
发表于 2013-4-22 15:47:49 | 显示全部楼层
回复【4楼】jswd:
---------------------------------
今天我搞外部中断也遇到一些问题。用的是原子的程序。好像中断函数名已经固定了,我用PC12作为外部中断,只能调用固定的EXTI15_10_IRQHandle程序,本来我是想PC12单独定义程序的。
  STM32外部中断16个(IO口),其中断函数的名称定义和调试有点迷糊。
。。。。。。。。。。。。。。。。。。
回复 支持 反对

使用道具 举报

9

主题

147

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
376
金钱
376
注册时间
2012-11-7
在线时间
35 小时
 楼主| 发表于 2013-4-22 19:24:50 | 显示全部楼层
回复【5楼】magic_yuan:
---------------------------------
我的好了,是函数名称错误EXTI15_10_IRQHandle应为EXTI15_10_IRQHandler,另外这个你不必局限于那种开发板,可以用软仿真的
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-21 02:07

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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