NRF52840学习——GPIO输入,实现按键短按和长按

一、资源

硬件:NRF52840蓝牙模块;
软件:SDK17.0.2中ble_central_and_periphera的lble_app_hrs_rscs_relay工程。
在这里插入图片描述

二、SDK配置

点击sdk_config.h文件,再点击Configuration Wizard
在这里插入图片描述
在这里插入图片描述
勾选nRF_Drivers中GPIOTE选项
在这里插入图片描述
保存,每改动一次sdk_config.h文件中的内容编译时需要花费比较长的时间。

三、代码编写

.c文件



/*********************************************************************
 * INCLUDES
 */
#include "nrf_drv_gpiote.h"
#include "app_timer.h" 
#include "app_error.h"

#include "board_gpi.h"

#include "nrf_log.h"

static void irqCallbackFunc(nrf_drv_gpiote_pin_t pin, nrf_gpiote_polarity_t action);
static void timer_irqDebounceCallback(void *arg);
static void timer_resetCallback(void *arg);

/*********************************************************************
 * LOCAL VARIABLES
 */
APP_TIMER_DEF(s_longPressTimer);														// 按键长按定时器
APP_TIMER_DEF(s_irqDebounceTimer);														// 中断消抖的定时器
static uint8 s_irqValue;                                                        		// 中断值

/*********************************************************************
 * PUBLIC FUNCTIONS
 */
/**
 @brief 按键中断初始化函数
 @param 无
 @return 无
*/
void Board_KeyInit(void)
{
   
	ret_code_t errCode = nrf_drv_gpiote_init();											// GPIOE驱动初始化
	APP_ERROR_CHECK<
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值