新手上路
- 积分
- 44
- 金钱
- 44
- 注册时间
- 2016-4-29
- 在线时间
- 5 小时
|
3金钱
外部中断0能用 外部中断3和4的进不去中断函数
exti.c
[mw_shl_code=c,true]#include "exti.h"
#include "led.h"
#include "key.h"
#include "delay.h"
#include "usart.h"
#include "beep.h"
#include "stm32f10x.h"
#include "sys.h"
void EXTIX_Init(void)
{
EXTI_InitTypeDef EXTI_InitStructure;
NVIC_InitTypeDef NVIC_InitStructure;
RCC_APB2PeriphResetCmd(RCC_APB2Periph_AFIO,ENABLE);
GPIO_EXTILineConfig(GPIO_PortSourceGPIOE,GPIO_PinSource4); //E.4
EXTI_InitStructure.EXTI_Line=EXTI_Line4;
// EXTI_InitStructure.EXTI_LineCmd=ENABLE;
EXTI_InitStructure.EXTI_Mode=EXTI_Mode_Interrupt;
EXTI_InitStructure.EXTI_Trigger=EXTI_Trigger_Falling;
EXTI_Init(&EXTI_InitStructure);
GPIO_EXTILineConfig(GPIO_PortSourceGPIOE,GPIO_PinSource3); //E.3
EXTI_InitStructure.EXTI_Line=EXTI_Line3;
EXTI_Init(&EXTI_InitStructure);
GPIO_EXTILineConfig(GPIO_PortSourceGPIOA,GPIO_PinSource0); //A.0
EXTI_InitStructure.EXTI_Line=EXTI_Line0;
EXTI_InitStructure.EXTI_Trigger=EXTI_Trigger_Rising;
EXTI_Init(&EXTI_InitStructure);
NVIC_InitStructure.NVIC_IRQChannel = EXTI0_IRQn; //ê1Äü°′¼üWK_UPËùÔúμÄía2¿ÖD¶Ïí¨μà
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x02; //ÇàÕ¼óÅÏ輶2£¬
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x03; //×óóÅÏ輶3
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //ê1Äüía2¿ÖD¶Ïí¨μà
NVIC_Init(&NVIC_InitStructure);
NVIC_InitStructure.NVIC_IRQChannel = EXTI3_IRQn; //ê1Äü°′¼üKEY1ËùÔúμÄía2¿ÖD¶Ïí¨μà
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x02; //ÇàÕ¼óÅÏ輶2
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x01; //×óóÅÏ輶1
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //ê1Äüía2¿ÖD¶Ïí¨μà
NVIC_Init(&NVIC_InitStructure); //¸ù¾YNVIC_InitStructÖDÖ¸¶¨μÄ2Îêy3õê¼»ˉíaéèNVIC¼Ä′æÆ÷
NVIC_InitStructure.NVIC_IRQChannel = EXTI4_IRQn; //ê1Äü°′¼üKEY0ËùÔúμÄía2¿ÖD¶Ïí¨μà
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x02; //ÇàÕ¼óÅÏ輶2
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x00; //×óóÅÏ輶0
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //ê1Äüía2¿ÖD¶Ïí¨μà
NVIC_Init(&NVIC_InitStructure); //¸ù¾YNVIC_InitStructÖDÖ¸¶¨μÄ2Îêy3õê¼»ˉíaéèNVIC¼Ä′æÆ÷
}
void EXTI4_IRQHandler(void)
{
delay_ms(10);//Ïû¶¶
// if(EXTI_GetFlagStatus(EXTI_Line4)!=RESET)
if(KEY0==0)
{
PBout(5)=!PBout(5);
}
EXTI_ClearITPendingBit(EXTI_Line4);
}
void EXTI3_IRQHandler(void)
{
delay_ms(10);//Ïû¶¶
// if(EXTI_GetFlagStatus(EXTI_Line3)!=RESET)
if(KEY1==0)
{
PEout(5)=!PEout(5);
}
EXTI_ClearITPendingBit(EXTI_Line3);
}
void EXTI0_IRQHandler(void)
{
delay_ms(10);//Ïû¶¶
// if(EXTI_GetFlagStatus(EXTI_Line0)!=RESET)
if(WKUP==1)
{
PBout(8)=!PBout(8);
}
EXTI_ClearITPendingBit(EXTI_Line0);
}
[/mw_shl_code]
|
|