登录
【HarmonyOS HiSpark Wi-Fi IoT 套件试用连载】[soon][第二篇]按键学习分享
开发板试用精选
2022-11-07
416
分享海报
开发板试用精选
807 文章
84.6w阅读
142粉丝
+关注
描述
本文来源电子发烧友社区,作者:soon顺soon, 帖子地址:
https://bbs.elecfans.com/jishu_2008614_1_1.html
声明:关于Wifi-IoT的按键部分,以下两片文章做了很好的分享,本文基于对以下两篇文章的学习修改完成的,感谢原作者
@狄泰软件学院客服
的分享,如本文中有任何不妥请联系修改。先附上原文链接
tang实现物理按键的“长按事件”(按键通用框架 V0.0.2)
https://bbs.elecfans.com/jishu_2006297_1_1.html
Delphi Tang实现S1,S2,User三个物理按键的独立事件-上(解决思路分析)
https://bbs.elecfans.com/jishu_2007516_1_1.html
相关的理论知识以上两篇已经写得很好了,本人
在其基础上进行了代码整合按照自己的需求修改代码,实现了四个物理按键USER(GPIO5)、显示板S1和S2、智能红绿灯板S1的按下、长按、释放事件。
主要代码如
附件1
。
使用方式请参考
附件2
。
大概步骤如下
1.导入头文件,具体路径依据你放的位置而定,相同目录下使用
#include "KeyEvent.h"
2.回调函数以及按键功能的定义
sta
ti
c void KeyEvent_Callback(KEY_ID_TYPE keyid, KEY_EVENT_TYPE event)
{
printf("[soon] KeyEvent_Callback() : keyid=%d event= %dn", (int)keyid, (int)event);
switch (keyid)
{
case KEY_ID_GPIO8:
printf("[soon] KEY_ID_USERn");
if( event == KEY_EVENT_PRESSED ) { /* 按下事件处理代码 */ }
if( event == KEY_EVENT_LONG_PRESSED ) { /* 长按事件处理代码 */ }
if( event == KEY_EVENT_RELEESED ) { /* 释放事件处理代码 */ }
break;
case KEY_ID_USER:
printf("[soon] KEY_ID_USERn");
if( event == KEY_EVENT_PRESSED ) { /* 按下事件处理代码 */ }
if( event == KEY_EVENT_LONG_PRESSED ) { /* 长按事件处理代码 */ }
if( event == KEY_EVENT_RELEESED ) { /* 释放事件处理代码 */ }
break;
case KEY_ID_S1:
printf("[soon] KEY_ID_S1n");
if( event == KEY_EVENT_PRESSED ) { /* 按下事件处理代码 */ }
if( event == KEY_EVENT_LONG_PRESSED ) { /* 长按事件处理代码 */ }
if( event == KEY_EVENT_RELEESED ) { /* 释放事件处理代码 */ }
break;
case KEY_ID_S2:
printf("[soon] KEY_ID_S2n");
if( event == KEY_EVENT_PRESSED ) { /* 按下事件处理代码 */ }
if( event == KEY_EVENT_LONG_PRESSED ) { /* 长按事件处理代码 */ }
if( event == KEY_EVENT_RELEESED ) { /* 释放事件处理代码 */ }
break;
default:
break;
}
}
复制代码
3.在task中调用,对按键进行初始化和配置,相关API如下。
// 初始化按键事件处理
KeyEvent_Init();
/* 设置GPIO_8按键的回调函数*/
KeyEvent_Connect("GPIO_8", KeyEvent_Callback, KEY_EVENT_PRESSED | KEY_EVENT_LONG_PRESSED | KEY_EVENT_RELEESED);
/* 设置GPIO_5按键的回调函数*/
KeyEvent_Connect("GPIO_5", KeyEvent_Callback, KEY_EVENT_PRESSED | KEY_EVENT_LONG_PRESSED | KEY_EVENT_RELEESED);
复制代码
附件1:
keyevent_demo.c
附件2:
keyevent.7z
下载文件见作者原帖子内容。
加上OLED显示的展示效果如下。
https://v.youku.com/v_show/id_XNDk2MzU4OTY5Mg==.html
打开APP阅读更多精彩内容
点击阅读全文
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
相关推荐
wi-fi
HarmonyOS
HiSpark
【
HarmonyOS
HiSpark
Wi-Fi
IoT
HarmonyOS
智能家居
套件
试用
】智能门禁系统
2020-09-25
0
【
HarmonyOS
HiSpark
Wi-Fi
IoT
套件
试用
连
连载
】开箱报告
2020-09-29
0
【
HarmonyOS
HiSpark
Wi-Fi
IoT
HarmonyOS
智能家居
套件
试用
】基于
HiSpark
Wi-Fi
IoT
HarmonyOS
智能家居
套件
的温控面板
2020-10-29
0
【
HarmonyOS
HiSpark
Wi-Fi
IoT
HarmonyOS
智能家居
套件
试用
】智能卧室
2020-10-29
0
【
HarmonyOS
HiSpark
Wi-Fi
IoT
套件
试用
连载
】2-从DEMO中
学习
代码与控制
2020-11-07
0
【
HarmonyOS
HiSpark
Wi-Fi
IoT
套件
试用
连载
】[
soon
][
第二篇
]
按键
学习
分享 ...
2020-11-15
0
[
HarmonyOS
HiSpark
Wi-Fi
IoT
HarmonyOS
智能家居
套件
]
试用
报告
2020-11-16
0
【
HarmonyOS
HiSpark
Wi-Fi
IoT
套件
试用
连载
】开发
套件
初探
2020-11-22
0
【
HarmonyOS
HiSpark
Wi-Fi
IoT
套件
试用
连载
】CHAPTER 1 ---- 开箱报告
2020-12-31
0
【
HarmonyOS
HiSpark
Wi-Fi
IoT
套件
试用
连载
】播放音乐
2022-10-31
965
【
HarmonyOS
HiSpark
Wi-Fi
IoT
套件
试用
连载
】wifi连上不网
2022-10-31
906
【
HarmonyOS
HiSpark
Wi-Fi
IoT
套件
试用
连载
】鸿蒙
HiSpark
Wi-Fi
IoT
套件
使用感受(
二
)
2022-10-31
879
全部
0
条评论
快来发表一下你的评论吧 !
发送
登录/注册
×
20
完善资料,
赚取积分