NRF按键中断BSP长按功能实现

本文详细介绍了在Nordic NRF开发板上实现按键长按功能的步骤和原理。通过bsp_init()初始化,使用bsp_event_to_button_action_assign()分配按钮动作,并在bsp_button_event_handler()中断处理函数中处理长按定时器。长按事件检测和短按事件分离,确保长按不会触发短按功能。最后,在main.c中通过回调函数进行事件处理。
摘要由CSDN通过智能技术生成

最近在使用Nordic公司的NRF开发板进行开发,需要使用长按功能,看到网上这方面的总结不太多。因此写一篇关于长按功能的实现分析。

首先是按钮的初始化,初始化的入口在bsp_init()中,为了实现按钮功能,使用了 bsp_event_to_button_action_assign()这个函数,同一个按钮可以assign多个动作响应,每个动作可以对应于一个相应的动作处理事件,可用的按钮动作有三个,已经在bsp_config.h中定义过。

按钮动作处理事件可以使用预定义的事件或自己在bsp.h中定义。

当按钮被按下或释放,会产生一个中断,相应的中断处理函数是bsp.c中的bsp_button_event_handler(uint8_t pin_no, uint8_t button_action)函数,该函数的流程图绘制如下:

如果按钮定义了长按定时器,那么在短按的时候就会触发这个定时器,如果在定时器结束之前释放了按钮,则进入释放事件处理;如果定时器结束时还没有释放按钮,

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值