news 2026/9/3 2:38:30

杰理芯片SDK开发-AD697N添加按键触摸提示音功能教程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
杰理芯片SDK开发-AD697N添加按键触摸提示音功能教程

前言

到现在为止也开发了许多杰理TWS蓝牙耳机项目SDK的案子,在调试案子时不断的向前辈们学习到了很多关于蓝牙TWS耳机专业的知识。想在这里做一个学习汇总,方便各位同行和对杰理芯片SDK感兴趣的小伙伴们学习;

本章详细讲解杰理AD697N芯片按键触摸提示音实现方法

在调试一个TWS蓝牙耳机案子时,按键通常是我们必须要添加的功能,通过按键我们可以实现音量的增大/减少,歌曲的播放/暂停,曲目的切换,开机/关机等特定功能;所有我们必须在按键按下是添加提示音,有提示音的存在方便我们更好的感知按键的状态;在杰理SDK中有非常多可以实现按键提示音的方法。这里出一个常用稳定实现按键提示音的方法;

配置步骤:

1、在audio_key_tone.c文件中找到三个函数:
函数1:int audio_key_tone_play_name(const char *name, u8 preemption)
函数2:int audio_key_tone_play_index(u8 index, u8 preemption)
函数3:void audio_key_tone_play(void)
这3个函数是一环嵌套一环,紧密配合实现最终的提示音播放,接下来详细分析函数;(其实实现按键触摸音不止这三个函数配合,可以一直往深处去挖。本章就想让大家学会如何实现按键触摸音功能)

函数1:int audio_key_tone_play_name(const char *name, u8 preemption)
功能:通过文件名直接播放指定音频文件(例如:"key.WAV")
参数:
const char name:音频文件路径(需确保文件已烧录至设备存储,如Flash或SD卡)。
u8 preemption:播放模式控制(1为抢断当前音频立即播放,0为叠加播放)。
返回值return: 为0表示成功,非0通常为错误;

函数2: audio_key_tone_paly_index(u8 index, u8 preemption)
功能:通过索引号播放预定义文件的提示音(索引映射到具体文件名)。
参数:
index:提示音索引(范围)对应着序号对应表如下图所示

u8 preemption:播放模式控制(1为抢断当前音频立即播放,0为叠加播放)。
内部逻辑:
索引有效性检查:若index >= KTONE_IDEX_MAX则直接返回-1,错误
有效索引时,则通过函数1int audio_key_tone_play_name(const char *name, u8 preemption)播放按键提示音文件;

函数3:audio_key_tone_play(void)
功能:默认按键提示音播放入口函数(无参数,直接触发播放)。


2、现在开始配置提示音文件,配置触摸提示音文件我们需要将触摸提示音文件放入到芯片中使用配置工具放入,如图所示,放入了一个名为" key.WAV " 文件;


3、放入完成后,需在SDK中进行声明该按键提示音文件,如所示在枚举中添加定义,并且该定义对应着数组中的指定文件;


4、在板级配置文件中对该两个宏定义进行使能;


5、在SDK中放入按键提示音播放函数,一般都是放在lp_touch_key.c文件中p33_ctmu_key_event_ird_handler函数中

配置完成了,将SDK烧录进耳机板或者开发板中就可以观察出按键按下是有触摸音出现;


制作不易!喜欢的小伙伴给个小赞赞!喜欢我的小伙伴点个关注!有不懂的地方和需要的资源随时问我哟!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/2 22:17:54

虚拟串口配置入门必看:手把手搭建通信环境

虚拟串口配置实战指南:从零搭建高效通信链路 你有没有遇到过这样的场景? 手头没有目标硬件,但上位机程序已经写好了,急着要验证 Modbus 协议逻辑;或者 CI 测试流水线跑得好好的,却因为服务器没串口而卡住…

作者头像 李华
网站建设 2026/8/25 21:50:07

芯片验证工程师的写代码能力不是第一位

很多人以为验证工程师就是搭环境、跑仿真。但这只是表面工作。验证的核心在于发现问题,而不是证明设计正确。举个实际的例子:某个FIFO模块在正常读写测试下运行完美,覆盖率也达到了100%。但有个验证工程师在review代码时问了一句:…

作者头像 李华
网站建设 2026/9/2 22:43:01

【c++进阶】再谈虚函数

关注我,学习c不迷路: 个人主页:爱装代码的小瓶子 专栏如下: c学习Linux学习 后续会更新更多有趣的小知识,关注我带你遨游知识世界 期待你的关注。 文章目录深入探索C虚函数:从编译器视角看多态的“幕后魔法”1. 一…

作者头像 李华
网站建设 2026/9/2 23:31:28

AgentCPM-Explore开源,4B 参数突破端侧智能体模型性能壁垒

当全行业还在争论 30B 能否挑战万亿参数时,我们给出了一个更激进的答案: 4B。没有万亿参数的算力堆砌,没有百万级数据的暴力灌入,清华大学自然语言处理实验室、中国人民大学、面壁智能与 OpenBMB 开源社区联合研发的 AgentCPM-Exp…

作者头像 李华
网站建设 2026/9/2 18:54:01

Proteus使用教程:I2C器件仿真实现指南

在Proteus中玩转I2C仿真:从协议到实战的完整指南你有没有过这样的经历?焊好板子上电,发现EEPROM写不进去数据;调试半天才发现是地址接错了,或者忘了加上拉电阻。更糟的是,IC总线“锁死”,SCL/SD…

作者头像 李华