news 2026/7/2 3:04:24

杰理芯片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/6/30 2:38:30

OTG连接键盘鼠标:提升移动办公效率

用一根线把手机变电脑:OTG连接键盘鼠标的实战全解析你有没有过这样的经历?在机场候机时突然要改一份PPT,手指在虚拟键盘上反复敲错字;或者用平板远程登录服务器,却因为没有鼠标而无法精准选中命令行。这些场景下&#…

作者头像 李华
网站建设 2026/7/1 19:36:53

单词接龙问题

本文参考代码随想录 字典 wordList 中从单词 beginWord 和 endWord 的 转换序列 是一个按下述规格形成的序列: 序列中第一个单词是 beginWord 。 序列中最后一个单词是 endWord 。 每次转换只能改变一个字母。 转换过程中的中间单词必须是字典 wordList 中的单词。…

作者头像 李华
网站建设 2026/6/29 22:59:50

冗余连接II

本文参考代码随想录 在本问题中,有根树指满足以下条件的 有向 图。该树只有一个根节点,所有其他节点都是该根节点的后继。该树除了根节点之外的每一个节点都有且只有一个父节点,而根节点没有父节点。 输入一个有向图,该图由一个有…

作者头像 李华
网站建设 2026/7/1 15:26:30

Winhance v26.01.12 便携版:Windows 系统优化工具

Winhance v26.01.12 便携版是专为 Win10/Win11 打造的专业 Windows 系统优化工具,无需重装系统就能解决电脑卡顿、系统冗余等问题,帮助用户实现系统瘦身与性能提升,让新旧电脑都能拥有流畅运行体验,是 Windows 系统优化领域的实用…

作者头像 李华
网站建设 2026/7/1 16:03:20

STM32中I2C重入问题与中断处理图解说明

STM32中I2C重入问题与中断处理实战解析一个传感器读取失败的“灵异事件”你有没有遇到过这样的情况:系统运行几分钟都正常,突然一次温湿度数据跳变成0?或者日志里某个时间戳写进了错误的值?调试时用逻辑分析仪一抓——发现I2C总线…

作者头像 李华
网站建设 2026/6/30 21:52:38

基于STM32H7的串口不定长接收图解说明

一文搞懂STM32H7串口不定长接收:DMA 空闲中断的实战精髓 你有没有遇到过这样的场景? 设备通过串口发来一帧长度不固定的数据——可能是10字节的传感器采样,也可能是上百字节的配置命令。你用传统轮询方式处理,CPU占用飙到80%&am…

作者头像 李华