我想用一个按键产生一个中断,然后再中断中点亮一个指示灯
硬件接法是:P2.7端口接入一个按键,按下按键IO口为低电平然后写了以下的程序但是怎么都进入不了中断
首先是初始化使能按键中断该函数在periph_setup.c中执行periph_init(空白);时被调用
空白app_sw1_button_enable(空白)
{
NVIC_DisableIRQ (GPIO2_IRQn);
GPIO_RegisterCallback (GPIO2_IRQn sw1_callback_button_isr);
GPIO_EnableIRQ(GPIO_SW1_PORT, GPIO_SW1_PIN, GPIO2_IRQn, true, true, 10);
}
下面是回调函数
空白sw1_callback_button_isr(空白)
{
NVIC_DisableIRQ (GPIO2_IRQn);//关闭此中断
GPIO_ResetIRQ (GPIO2_IRQn);//清除暂挂中断
GPIO_SetActive(GPIO_LD2_PORT, GPIO_LD2_PIN);/ /点亮灯
NVIC_ClearPendingIRQ (GPIO2_IRQn);//关闭时清除中断请求
NVIC_EnableIRQ (GPIO2_IRQn);//启用该中断
}
按键配置:
gpio_sw1_port, gpio_sw1_pin, pid_gpio);
GPIO_ConfigurePin(GPIO_SW1_PORT, GPIO_SW1_PIN, INPUT_PULLUP, PID_GPIO, false);
当我按下按键时,P2.7端口上出现了低电平,但是去无法进入中断进行回调
请教
设备:
你现在用的是GPIO中断,那么在睡眠下是不起作用的。如果需要实现按键的功能,建议参考SDK自带的app_button_enable函数
/ * * /睡眠模式
# undef CFG_EXT_SLEEP
# undef CFG_DEEP_SLEEP
在da14580_config.h文件中没有定义睡眠那么整个程序应该不会处于睡眠下吧再次请教的你
是的