新手上路
- 积分
- 27
- 金钱
- 27
- 注册时间
- 2019-12-4
- 在线时间
- 7 小时
|
本帖最后由 A张超 于 2019-12-4 20:40 编辑
程序也不报错就是没有现象哪位大佬帮忙看看啊,我在外面加了一个按键想通过这个按键实现外部中断
看一下代码
exti.c文件
#include "stm32f10x.h"
#include "exti.h"
#include "key.h"
void EXTIX_Init(void)
{
EXTI_InitTypeDef E;
NVIC_InitTypeDef N;
KEY_Init();
RCC_APB2PeriphResetCmd(RCC_APB2Periph_AFIO ,ENABLE );
GPIO_EXTILineConfig(GPIO_PortSourceGPIOA,GPIO_PinSource0);
E.EXTI_Line = EXTI_Line0;
E.EXTI_LineCmd = ENABLE;
E.EXTI_Mode = EXTI_Mode_Interrupt;
E.EXTI_Trigger = EXTI_Trigger_Falling;
EXTI_Init(&E);
N.NVIC_IRQChannel = EXTI0_IRQn;
N.NVIC_IRQChannelCmd = ENABLE;
N.NVIC_IRQChannelPreemptionPriority = 1;
N.NVIC_IRQChannelSubPriority = 1;
NVIC_Init(&N);
}
key.c文件
#include "stm32f10x.h"
#include "key.h"
#include "delay.h"
void KEY_Init(void)
{
GPIO_InitTypeDef K;
RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOA ,ENABLE );
K.GPIO_Mode = GPIO_Mode_IPU;
K.GPIO_Pin = GPIO_Pin_0;
GPIO_Init (GPIOA,&K);
}
main.c文件
#include "stm32f10x.h"
#include "led.h"
#include "key.h"
#include "exti.h"
#include "delay.h"
void EXTI0_IRQHandler(void)
{
delay_ms(10);
if(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_0) == 1)
{
LED0 =! LED0;
}
EXTI_ClearITPendingBit(EXTI_Line0);
}
int main(void)
{
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
EXTIX_Init();
delay_init();
KEY_Init();
LED_Init();
LED0 = 0;
while(1)
{
}
}
|
|