当前位置: 首页 > news >正文

杰理SDK入门教程(六):自定义按键事件

杰理AC695N自定义按键事件开发教程

本教程以杰理AC695N芯片(基于soundbox应用)为例,详细介绍如何自定义按键事件,包括枚举定义、按键表配置及消息处理实现的全流程。


一、添加自定义按键枚举

操作步骤

  1. 打开文件路径:apps/soundbox/include/key_event_deal.h
  2. 在文件内 KEY_NULL 枚举值之前添加自定义按键枚举变量(例如 KEY_USER_TEST

在这里插入图片描述

二、配置按键功能表

核心文件

文件路径:apps/soundbox/board/br23/board_ac695x_smartbox/key_table/adkey_table.c

文件说明

该文件包含多个按键功能定义数组(如 bt_key_ad_table[][]),每个数组对应不同工作模式下的按键行为映射:

  • 数组行:对应物理按键序号(例如第0行→按键0,第1行→按键1…)
  • 数组列:对应按键操作类型(如单击、双击、长按等,具体列定义需参考文件内注释)
    在这里插入图片描述

操作示例(以蓝牙模式为例)

  1. 定位目标数组:找到对应模式的按键表(例如蓝牙模式使用 bt_key_ad_table[][]
  2. 修改按键行为
  • 单击行为:将数组中第0行第1列(假设第1列为单击列)的值改为 KEY_USER_TEST
    在这里插入图片描述

  • 双击行为:将数组中第1行第X列(假设X列为双击列)的值改为 KEY_USER_TEST
    在这里插入图片描述

📌 提示:通过文件内注释确认各列对应的操作类型(如单击/双击/长按),不同模式数组的列结构可能一致,需根据实际注释调整。


三、实现按键消息处理逻辑

核心文件

文件路径:apps/soundbox/task_manager/app_common.c

操作步骤

  1. 定位函数:找到 int app_common_key_msg_deal(struct sys_event *event) 函数
  2. 添加 case 分支:在函数内的按键消息处理逻辑中,为 KEY_USER_TEST 添加专属处理代码

关键说明

  • 兜底处理机制:当各模式独立的按键消息处理函数未匹配到目标按键时,会调用 app_common_key_msg_deal 进行统一处理
  • 推荐位置:在该函数的 switch(event->arg) 或类似按键消息分支结构中,添加如下代码片段:
case KEY_USER_TEST:
// TODO: 在此添加自定义按键触发的功能逻辑
// 示例:打印日志 / 控制硬件 / 切换状态等
printf("KEY_USER_TEST triggered!\n");
break;

在这里插入图片描述


四、编译下载与测试验证

  1. 保存所有修改:确保新增枚举、按键表配置及消息处理代码均已正确编写
  2. 编译固件:使用杰理开发环境(如IDE)编译工程,确认无报错
  3. 烧录测试:将编译生成的固件下载至AC695N开发板
  4. 功能验证:操作对应按键(如步骤二中配置的单击/双击),观察是否触发预期功能(如日志打印/硬件响应)
    在这里插入图片描述
http://www.dtcms.com/a/511772.html

相关文章:

  • gray = roi.clone();和gray = roi;的区别是什么?
  • STM32中MX_TIM2_Init函数和HAL_TIM_Base_MspInit函数区别
  • 【基于Selenium的智能滑块验证码破解技术详解】
  • AI体测设备服务商
  • 网站之间如何做视频交换惠州搜索引擎优化
  • 李宏毅机器学习笔记28
  • 【开题答辩实录分享】以《智慧社区信息化服务平台》为例进行答辩实录分享
  • 京东网站建设过程东莞建设网站的位置
  • SAP SD销售订单执行跟踪报表分享
  • 数据挖掘比赛baseline参考
  • [人工智能-大模型-19]:GitHub Copilot:程序员的 AI 编程副驾驶
  • 【JVM】低延迟垃圾收集器:Shenandoah收集器与ZGC收集器
  • 深圳网站建设deyondwordpress主题wake
  • Day44 | J.U.C中的LockSupport详解
  • 网络安全生态及学习路线
  • 深度学习-卷积神经网络基础
  • 广州教育网站设计公司在建工程项目查询
  • 【瀑布流大全】分析原理及实现方式(微信小程序和网页都适用)
  • wordpress网站的常规安全设置经验分享
  • 代码随想录Day53|110. 字符串接龙、105.有向图的完全联通、106. 岛屿的周长
  • 做婚恋网站这几年做哪个网站致富
  • 【案例实战】听歌学英语鸿蒙APP从零到上架全流程回顾
  • 基于频域的数字盲水印blind-watermark
  • 三、网站开发使用软件环境中小企业建站的方法
  • 开源 Linux 服务器与中间件(八)数据库--MariaDB
  • Mac OS 安装 VirtualBox
  • wordpress卡密系统源码主题站长工具查询seo
  • 宁波快速建站公司附近的装修公司地点
  • 物联网运维中的自适应网络拓扑重构技术
  • jenkins介绍与部署