0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

【HarmonyOS HiSpark Wi-Fi IoT 套件试用连载】[soon][第二篇]按键学习分享

开发板试用精选 来源:开发板试用 作者:电子发烧友论坛 2022-11-07 13:51 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

本文来源电子发烧友社区,作者: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.回调函数以及按键功能的定义

  1. static void KeyEvent_Callback(KEY_ID_TYPE keyid, KEY_EVENT_TYPE event)
  2. {
  3. printf("[soon] KeyEvent_Callback() : keyid=%d event= %dn", (int)keyid, (int)event);
  4. switch (keyid)
  5. {
  6. case KEY_ID_GPIO8:
  7. printf("[soon] KEY_ID_USERn");
  8. if( event == KEY_EVENT_PRESSED ) { /*按下事件处理代码 */ }
  9. if( event == KEY_EVENT_LONG_PRESSED ) { /*长按事件处理代码 */ }
  10. if( event == KEY_EVENT_RELEESED ) { /*释放事件处理代码 */ }
  11. break;
  12. case KEY_ID_USER:
  13. printf("[soon] KEY_ID_USERn");
  14. if( event == KEY_EVENT_PRESSED ) { /*按下事件处理代码 */ }
  15. if( event == KEY_EVENT_LONG_PRESSED ) { /*长按事件处理代码 */ }
  16. if( event == KEY_EVENT_RELEESED ) { /*释放事件处理代码 */ }
  17. break;
  18. case KEY_ID_S1:
  19. printf("[soon] KEY_ID_S1n");
  20. if( event == KEY_EVENT_PRESSED ) { /*按下事件处理代码 */ }
  21. if( event == KEY_EVENT_LONG_PRESSED ) { /*长按事件处理代码 */ }
  22. if( event == KEY_EVENT_RELEESED ) { /*释放事件处理代码 */ }
  23. break;
  24. case KEY_ID_S2:
  25. printf("[soon] KEY_ID_S2n");
  26. if( event == KEY_EVENT_PRESSED ) { /*按下事件处理代码 */ }
  27. if( event == KEY_EVENT_LONG_PRESSED ) { /*长按事件处理代码 */ }
  28. if( event == KEY_EVENT_RELEESED ) { /*释放事件处理代码 */ }
  29. break;
  30. default:
  31. break;
  32. }
  33. }
复制代码

3.在task中调用,对按键进行初始化和配置,相关API如下。

  1. // 初始化按键事件处理
  2. KeyEvent_Init();
  3. /* 设置GPIO_8按键的回调函数*/
  4. KeyEvent_Connect("GPIO_8", KeyEvent_Callback, KEY_EVENT_PRESSED | KEY_EVENT_LONG_PRESSED | KEY_EVENT_RELEESED);
  5. /* 设置GPIO_5按键的回调函数*/
  6. 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
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • wi-fi
    +关注

    关注

    15

    文章

    2460

    浏览量

    129997
  • HarmonyOS
    +关注

    关注

    80

    文章

    2157

    浏览量

    36280
  • HiSpark
    +关注

    关注

    1

    文章

    156

    浏览量

    7798
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    技术资讯 I Wi-Fi 模块设计

    本文要点Wi-Fi模块设计旨在打造一套紧凑且高效的硬件和软件解决方案,使设备能够通过Wi-Fi网络实现通信。Wi-Fi模块设计是一个复杂的过程,要求研发人员兼具硬件与软件工程方面的专业知识
    的头像 发表于 02-27 17:12 850次阅读
    技术资讯 I <b class='flag-5'>Wi-Fi</b> 模块设计

    Wi-Fi:无线连接的全球通用语

    现代生活中不可或缺的无线连接方式。Wi-Fi的核心特点1. 高速率,宽带宽支持从几十Mbps到数Gbps的传输速率,满足高清视频、在线游戏等高带宽应用需求。2. 广泛兼容,生态成熟几乎所有智能终端均内置
    发表于 01-07 09:49

    Nordic发布nRF7002 EBII 开发板, 支持Wi-Fi 6, 解锁nRF54L新玩法

    Wi-Fi 6 功能,帮助开发人员创建高性能、高能效的Wi-Fi 6 物联网解决方案。 基于 Nordic 的 nRF7002 Wi-Fi 协同 IC,nRF7002 EBII帮助 采用
    发表于 12-10 11:58

    Wi-Fi模块选型指南 | 低功耗蓝牙/Wi-Fi 6模块推荐 | 物联网设备集成攻略

    :选择用模块的理由: 是为了方便电路集成设计,特别是硬件兼容集成设计,这样只要产品前期做好了综合设计,后续做产品设计以及应用端的灵活选择,提供了很大的便利,省得重复设计硬件,缩短开发周,加快将产品推向市场的时间; Wi-Fi模块选型注意点
    的头像 发表于 12-09 11:27 1308次阅读
    <b class='flag-5'>Wi-Fi</b>模块选型指南 | 低功耗蓝牙/<b class='flag-5'>Wi-Fi</b> 6模块推荐 | 物联网设备集成攻略

    Wi-Fi FEM研发,开启第二个十年

    转载自《钟林谈芯》 人生如逆旅,我亦是行人。十年之旅, 一起同行, 步步开花,Wi-Fi FEM研发,我们开启第二个十年。 2015年,在 锐迪科 (RDA)一起走进Wi-Fi FEM赛道,未来的路
    的头像 发表于 11-12 15:37 545次阅读
    <b class='flag-5'>Wi-Fi</b> FEM研发,开启<b class='flag-5'>第二</b>个十年

    浅谈Wi-Fi 6E与Wi-Fi 7的关键器件——BAW滤波器新技术

    作者: Qorvo 亚太区无线连接事业部高级行销经理林健富   2020年1月,Wi-Fi联盟正式宣布开放6GHz频段(5925MHz-7125MHz),并将其命名为Wi-Fi 6E。2020年4月
    发表于 09-19 18:29 2445次阅读
    浅谈<b class='flag-5'>Wi-Fi</b> 6E与<b class='flag-5'>Wi-Fi</b> 7的关键器件——BAW滤波器新技术

    如何更新 NuMaker IoT 板上的 Wi-Fi 模块固件?

    更新 NuMaker IoT 板上的 Wi-Fi 模块固件
    发表于 09-04 08:28

    基于 SSID 的 Wi-Fi 定位:与其他定位服务的性能比较

    随着 nRF7000 Wi-Fi 协同 IC 的推出,我们现在可以提供具有 Wi-Fi、蜂窝物联网和 GNSS 功能的完整硅到云定位解决方案。nRF7000 针对 Wi-Fi 网络扫描进行了优化
    发表于 08-31 21:01

    LitePoint Wi-Fi测试软件减轻客户设计负担

    Wi-Fi 7于一年多前获得Wi-Fi联盟认证以来,作为最新一代通信技术,Wi-Fi正逐步成为用户实现无所不在无线连接的新选择。随着每一代Wi-Fi信号复杂性的提升,建议将硬件测试纳
    的头像 发表于 08-06 15:34 1371次阅读
    LitePoint <b class='flag-5'>Wi-Fi</b>测试软件减轻客户设计负担

    Texas Instruments CC335x SimpleLink™双频Wi-Fi® 6配套IC数据手册

    RTOS主机的成本敏感型嵌入式应用。Texas Instruments CC335x为物联网 (IoT) 的嵌入式设备应用带来了Wi-Fi 6的高效性能,并具有较小的PCB占用面积和高度优化的物料清单
    的头像 发表于 07-23 11:37 1629次阅读
    Texas Instruments CC335x SimpleLink™双频<b class='flag-5'>Wi-Fi</b>® 6配套IC数据手册

    有没有什么修复方法可以确保 AP 模式下的 Wi-Fi 和 BLE 连接同时正常工作?

    我正在使用 CYBSYSKIT DEV 01 套件。我尝试在 AP 模式下打开 Wi-Fi 并宣传 BLE。我可以宣传 SoftAP 和 BLE。但是,我无法从中央设备连接到 BLE。它可以立即连接并断开连接。有没有什么修复方法可以确保 AP 模式下的
    发表于 07-17 06:13

    如何选择合适的芯科科技Wi-Fi开发板

    您正在寻找适用于超低功耗物联网应用项目的Wi-Fi 开发板吗?本文将介绍Silicon Labs(芯科科技)推出的所有SiWx917 Wi-Fi 6和低功耗蓝牙5.4解决方案的Wi-Fi 开发板。SiWx917是目前市场上最节能
    的头像 发表于 07-09 09:15 2914次阅读

    科普|公司的Wi-Fi,为什么这么慢?

    大家在公司上班,经常会使用到Wi-Fi。最近这几年,随着时代的发展,高清视频会议等大带宽网络应用越来越普遍。而公司的网络,却非常不给力,频繁卡顿,严重影响使用体验。哪怕IT的同事已经把网络优化得很
    的头像 发表于 06-20 06:06 1790次阅读
    科普|公司的<b class='flag-5'>Wi-Fi</b>,为什么这么慢?

    Wi-Fi 8:开启极高可靠性 (UHR) 连接的新纪元——1

    英国作家狄更斯在《双城记》的开头写道:“这是最好的时代,也是最坏的时代。” 这句话若套用在现今Wi-Fi 的市场现状,何尝不是惊人的相似? 怎么说呢?Wi-Fi 从被发明至今已经经过了20多年的迭代
    发表于 06-13 11:09

    Wi-Fi HaLow如何突破传统Wi-Fi性能瓶颈?

    视频推荐在万物互联的时代,传统Wi-Fi在覆盖范围、功耗、连接数上渐显不足。而Wi-FiHaLow的诞生,正在用黑科技打破传统Wi-Fi的性能瓶颈!今天,我们一起来探究Wi-FiHaL
    的头像 发表于 04-22 11:38 1402次阅读
    <b class='flag-5'>Wi-Fi</b> HaLow如何突破传统<b class='flag-5'>Wi-Fi</b>性能瓶颈?