STM32进入中断怎么出不了中断

/*实现功能:按键之前D2常亮;按下INT2键(C13端口,对应EXTI13外部中断线),进入中断程序D2常灭*/#include"stm32f10x.h"/******... /*实现功能:按键之前D2常亮;
按下INT2键(C13端口,对应EXTI13外部中断线),进入中断程序D2常灭*/
#include "stm32f10x.h"
/*****************************/
void LED_GPIO_Config()
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOG, ENABLE); //开启GPIO_G外设时钟
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_14; //板上LED编号 D2 PG14
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //通用推挽输出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //设置引脚速率
GPIO_Init(GPIOG, &GPIO_InitStructure); //调用库函数,初始化GPIO_G

GPIO_SetBits(GPIOG,GPIO_Pin_14); //点亮D2

}
void NVIC_Config(void) //NVIC中断控制器初始化配置
{
NVIC_InitTypeDef NVIC_InitStructure;
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1); //设置中断优先级分组1
NVIC_InitStructure.NVIC_IRQChannel =EXTI15_10_IRQn; //设定中断源为EXTI13
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; //中断占优先级为0
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; //副优先级为0
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //使能中断
NVIC_Init(&NVIC_InitStructure);
}
void EXTI_Config(void) //外部中断配置 PC13
{
GPIO_InitTypeDef GPIO_InitStructure;
EXTI_InitTypeDef EXTI_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC|RCC_APB2Periph_AFIO, ENABLE);
NVIC_Config();
/*EXTI LINE GPIO CONFIG */
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13; //C13
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD; //上拉输入
GPIO_Init(GPIOC, &GPIO_InitStructure);
/*EXTI LINE MODE CONFIG*/
GPIO_EXTILineConfig(GPIO_PortSourceGPIOC, GPIO_PinSource13);
EXTI_InitStructure.EXTI_Line = EXTI_Line13;
EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; //中断模式为中断模式
EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling; //下降沿出发
EXTI_InitStructure.EXTI_LineCmd = ENABLE; //使能中断线
EXTI_Init(&EXTI_InitStructure); //根据参数初始化中断寄存器
}
EXTI15_10_IRQHandler() //外部中断13中断服务函数
{
if(EXTI_GetITStatus(EXTI_Line13)!=RESET) //进入中断后,调用EXTI_GetITStatus()函数再次检查是否产生了EXTI_Line中断
{

EXTI_ClearFlag(EXTI_Line13);
GPIO_ResetBits(GPIOG,GPIO_Pin_14); //灭D2
EXTI_ClearITPendingBit(EXTI_Line13); //清除中断标志位再退出中断服务程序
}
}
int main()
{
LED_GPIO_Config();
EXTI_Config();
while(1);
}
感觉这个用在这里不合适GPIO_ResetBits(GPIOG,GPIO_Pin_14); //灭D2
展开
 我来答
雨纷纷YFFht
2014-11-13 · TA获得超过276个赞
知道小有建树答主
回答量:493
采纳率:0%
帮助的人:234万
展开全部

单步执行,在EXTI_Config那个函数里加断点,然后看看程序跑到哪里了。。。肯定能解决或者按图改下程序、、加个状态变量

追问
怎么加断点
追答
f9
意法半导体(中国)投资有限公司
2023-06-12 广告
STM32F207是一款非常优秀的微控制器芯片,它是ST(意法半导体)最新推出的基于90纳米工艺的STM32F2系列芯片之一。STM32F207芯片内置了丰富的外设接口,包括ADC、DAC、UART、SPI、I2C等,可以轻松实现各种复杂的... 点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
查晓筠0i5
2014-11-13 · TA获得超过2752个赞
知道大有可为答主
回答量:2.1万
采纳率:1%
帮助的人:4962万
展开全部
需要帮你做设计吗
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
润泽还清脆灬活宝8
2014-11-12 · TA获得超过125个赞
知道答主
回答量:200
采纳率:0%
帮助的人:75.1万
展开全部
1)我不知道你是怎么用DISABLE开启的。
2)请检查中断函数名是否与启动代码中的中断函数名一致。
3)你在中断函数里关时钟做什么用?
4)不要在中断函数里做处理。
追问
你说的我一个都没听懂
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式