BES 平台 SDK之按键的配置

本文章是基于BES2700 芯片,其他BESxxx 芯片可做参考,如有不当之处,欢迎评论区留言指出。仅供参考学习用!

BES 平台 SDK之LED的配置_谢文浩的博客-CSDN博客

关于系统LED简介可参考上一篇文章。链接如上所示!

一:PWR KEY

1. 按键配置

1.工程配置文件common.mk 需要打开宏定义:

export APP_KEY_ENABLE ?= 1

  1. 打开按键,源文件路径:/apps/main/apps.cpp

从代码可以看出,app_key_open 首先会注册一个app_key_config 链表,添加主函数邮箱信息处理回调函数app_key_handle_process。之后调用函数 hal_key_open来注册按键处理事件(key_event_process)。事件处理函数只是将按键信息发送给主函数邮箱,主函数邮箱轮询事件,并调用对应回调函数进行事件处理。此处会调用app_key_handle_process 。(真正对按键逻辑处理的地方是在app_key_init绑定按键代码的结构体对应的回调函数里面。绕了一大圈,按键代码对应按键回调函数。)

接下来我们看下hal_key_open主要做了那些事情。

1).调用hal_gpiokey_open 对普通按键进行按键代码与回调函数绑定,此处我们不关注。

2).检测是否在充电盒里,CFG_HW_BOX_DET_PIN 引脚电平进行判断,如果在充电盒内,需要长按pwr key 才能正常开机。此处我们不关注。

3).调用了hal_pwrkey_open 函数,宏表示是有PWRKEY就开启该按键。我们继续跟进看下该函数主要做了那些工作。

主要对PWRKEY 按键进行了中断配置,并且注册了中断处理函数hal_pwrkey_irqhandler

跟踪一下中断处理函数:

获取了pmus state ,之后调用hal_pwrkey_handle_irq_state 处理。

此函数主要对PWRKEY 按键做了如下几个工作:

1)是否为下降沿触发。

2)是否是按下动作,更新按键对应的信息。重启debounce定时器。

关于debounce Timer 定时器,需要回退到hal_key_open 函数。如下图所示:

此处创建了debounce_timer,按键去抖定时器(10ms)。并且开启按键中断。后面所有的按键相关逻辑都在hal_key_debounce_handler 函数处理。

此函数处理的业务逻辑比较多,代码也是比较乱。后面更新完善。。。

  1. 初始化按键,源文件路径:/apps/main/apps.cpp

函数app_key_init()会调用 app_tws_ibrt_raw_ui_test_key_init()进行按键注册到链表(分配内存池,添加到app_key_conifg),并且绑定对应的按键代码(APP_KEY_CODE_PWR)。之后跟进上报的按键事件(APP_KEY_EVENT_T),回调对应的注册函数 APP_KEY_HANDLE_CB_T,如下截图所示:

二:CUSTORM KEY

  1. 根据原理图确认PWR 按键控制引脚GPIO,找到SDK 关于按键配置的.c 源文件。/config/best1306_ibrt/target.h 和 /config/best1306_ibrt/target.c),如下截图所示:
相关推荐
麦兜*2 天前
MongoDB 在物联网(IoT)中的应用:海量时序数据处理方案
java·数据库·spring boot·物联网·mongodb·spring
亿坊电商3 天前
物联网领域中PHP框架的最佳选择有哪些?
物联网·struts·php
御控工业物联网3 天前
灌区泵站远程监控物联网网关解决方案
物联网·远程监控·物联网网关·泵站·灌区泵站
BAGAE3 天前
MODBUS 通信协议详细介绍
linux·嵌入式硬件·物联网·硬件架构·iot·嵌入式实时数据库·rtdbs
jz-炸芯片的zero3 天前
【Zephyr电源与功耗专题】14_BMS电池管理算法(三重验证机制实现高精度电量估算)
单片机·物联网·算法·zephyr·bms电源管理算法
亿坊电商4 天前
物联网-无人自助茶室-如何实现24H智能营业?
物联网
TDengine (老段)4 天前
TDengine 选择函数 TOP() 用户手册
大数据·数据库·物联网·时序数据库·iot·tdengine·涛思数据
御控工业物联网4 天前
智慧灌溉泵房远程监控物联网系统解决方案
物联网·远程监控·组态监控·智慧水务·智慧灌溉·无人值守泵站·设备远程调试
御控工业物联网4 天前
农田水利工程远程监控与远程调试的御控物联网系统解决方案
物联网·远程监控·远程调试
清风6666664 天前
基于STM32单片机的OneNet物联网粉尘烟雾检测系统
stm32·单片机·物联网·毕业设计·课程设计