main函数中
#include "public.h"
#include "led.h"
#include "exti.h"
#include "systick.h"
u8 count=0;
int main()
{
LED_Init(); //LED初始化
exti_init(); //中断初始化
while(1);
}
中断函数(STM32F10x_it.c)中
void EXTI2_IRQHandler() //ÍⲿÖжÏ2ÖжϺ¯Êý
{
extern u8 count;
if(EXTI_GetITStatus(EXTI_Line2)==SET)
{
EXTI_ClearITPendingBit(EXTI_Line0);//清除挂起位
if(GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_2)==Bit_RESET) //PC2按下
{
delay_ms(10);//消抖
if(GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_2)==Bit_RESET)
{
delay_ms(10);
count=count++;
}
while(GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_2)==0);
}
}
while(count--)
{
GPIO_ResetBits(GPIOC,GPIO_Pin_1); //点亮Led
delay_ms(2000);
GPIO_SetBits(GPIOC,GPIO_Pin_1); //灭掉led
delay_ms(2000); //延时大概两秒
}
}