设置了中断标志位,进不了中断,以下是我的程序,求大神指点,小弟在此谢过
main.c:
#include <stm32f10x_lib.h>
#include "sys.h"
#include "usart.h"
#include "delay.h"
#include "exti.h"
#include "key.h"
#include "led.h"
int main(void)
{
Stm32_Clock_Init(9); //系统时钟设置
delay_init(72); //延时初始化
uart_init(72,9600); //串口初始化为9600
LED_Init();
KEY_Init();
EXTIX_Init();
Flag_Recv = 0; /* 接收到数据标志置零 */
printf("Test Starting !");
while(1)
{
if(Flag_Recv==1)
{
LED1=!LED1;
delay_ms(50);
Flag_Recv = 0;
printf("Isring!"); /* 打印响铃字符串 */
}
}
}
exti.c:
#include "exti.h"
#include "delay.h"
#include "usart.h"
#include "key.h"
u8 Flag_Recv ;
//外部中断0服务程序
void EXTI0_IRQHandler(void)
{
delay_ms(10);
if(KEY0==0)
{
Flag_Recv = 1;
}
EXTI-> R=1<<13; //清除LINE13上的中断标志位
}
void EXTIX_Init(void)
{
RCC->APB2ENR|=1<<2; //使能PORTA时钟
JTAG_Set(JTAG_SWD_DISABLE);//关闭JTAG和SWD
GPIOA->CRH&=0XFF0FFFFF;//PA13设置成输入
GPIOA->CRH|=0X00800000;
GPIOA->ODR|=1<<13;
Ex_NVIC_Config(GPIO_A,13,FTIR);//下降沿触发
MY_NVIC_Init(2,1,EXTI15_10_IRQChannel,2);//抢占2,子优先级1,组2
}
exti.h:
#ifndef __EXTI_H
#define __EXIT_H
#include "sys.h"
extern u8 Flag_Recv ;
void EXTIX_Init(void);//IO初始化
#endif
请问为什么进不了中断,有什莫问题吗?
|