#include "nrf_gpio.h"
#include "nrf51.h"
//定义自己板子上的按键和led灯
#define BUTTON_PIN 17
#define LED_PIN 21
int main(void){
//讯联的板子上按钮上没有接上拉电阻,所以需要下面这两句来设置输入有
//上拉电阻,不然的话每次按键后几秒钟内再按键都会没反应,要等一会按
//才会有反应
nrf_gpio_pin_pull_t config = NRF_GPIO_PIN_PULLUP;
nrf_gpio_cfg_input(BUTTON_PIN, config);
//配置GPIOTE通道0作为event,”绑定”按键引脚,设置下降沿产生event
NRF_GPIOTE->CONFIG[0] = 1 << 0
|(BUTTON_PIN << 8)
|(2 << 16);
//配置LED输出
nrf_gpio_cfg_output(LED_PIN);
//配置 event发生的时候产生中断,
NRF_GPIOTE->INTENSET = 0X01;
//配置GPIOTE中断优先级,并使能GPIOTE中断
NVIC_SetPriority(GPIOTE_IRQn, 1);
NVIC_ClearPendingIRQ(GPIOTE_IRQn);
NVIC_EnableIRQ(GPIOTE_IRQn);
while(1);
return 0;
}
//中断处理函数:
void GPIOTE_IRQHandler(void){
if ( NRF_GPIOTE->EVENTS_IN[0] == 1 ){
//首先清楚event,不然会导致中断退出有event任然存在导致一直
//触发中断
NRF_GPIOTE->EVENTS_IN[0] = 0;
nrf_gpio_pin_toggle(LED_PIN);
}
}
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。