杰理芯片SDK开发-内置触摸按键配置教程

前言

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

本章详细讲解杰理TWS耳机项目SDK开发中内置触摸按键配置

在调试一个TWS蓝牙耳机案子时,按键通常是我们必须要添加的功能,通过按键我们可以实现音量的增大/减少,歌曲的播放/暂停,曲目的切换,开机/关机等特定功能;在杰理SDK中有非常多的按键种类在board_xxx_demo_cfh.h文件中可供我们配置如下图;

按键配置:


GPIO引脚配置


AD电压值配置


红外按键配置


内置触摸按键配置


内置触摸按键感应原理

内置触摸按键检测模块是利用人体分布电容对触摸按键电容影响来进行按键检测的,如下图:

当人体触摸外部电容按键时,IO口外部电容增加,芯片内部的触摸感应模块可以检测到该电容变化,从而检测到按键是否被按下。在没有触摸的时候,PCB板走线和其他寄生电容组成了触摸按键固有电容Cp,当按键被触摸,电容增加了Cs,当Cs/Cp越大时,触摸按键检测越灵敏,PCB layout建议尽可能减少Cp,增加Cs,以增加触摸按键灵敏度。


内置触摸按键配置详细介绍

内置触摸按键功能开关配置在board_xxx_demo_cfg.h文件中,如下图所示;


内置触摸按键结构体配置在board_xxx_demo.c文件中,如图所示;

结构体详细讲解:

.ch[ 0 ].enable为触摸模块开关,可以直接赋值为1或与TCFG_LP_TOUCH_KEY0_EN宏定义进行绑定。

.ch[ 0 ].port为触摸模块检查GPIO脚,因为是内置触摸按键。原厂已配置好。所以不能进行修改

.ch[ 0 ].sensitivity为触摸按键电容灵敏度配置,通过TCFG_LP_TOUCH_KEY0_SENSITIVITY宏定义进行灵敏度的修改也可以通过配置工具配置

.ch[ 0 ].key_value为触摸按键键值,非常重要是直接跟key_table按键消息表关联。当单击、双击、长按、持续长按等操作时,会直接响应key_table按键消息表的事件;


key_table按键消息表详细介绍

key_table按键消息表在board_xxxx_demo.c文件中,如图所示:

key_table按键消息表有三个非常重要的参数需要我们开发人员特别注意:

参数1:为按键键值,按键键值是直接跟key_table数组的行元素对应的。例如说:按键键值设置为0,那么就对于key_table数字的0行索引也就是第一行;

参数2:为按键操作类型,按键操作类型是直接跟key_table数组的列元素对应的。例如说:配置了按键键值为0,执行单击事件。那么直接映射key_table数组的行索引0列索引0也就是第一行第一列key_music_pp事件;

参数3:为按键执行操作后TWS耳机应该执行什么功能;例如单击事件KEY_EVENT_CLICK操作后,TWS耳机执行KEY_MUSIC_PP音乐播放/暂停操作;

参数2:按键操作类型在event.h文件中,如下图

参数3:按键操作执行功能事件在key_event_deal.h文件中,如下图所示:


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

相关推荐
森焱森4 小时前
GD32F4 DSP
linux·c语言·arm开发·驱动开发·嵌入式硬件
SystickInt4 小时前
32 LCD显示(FSMC应用)-寄存器
stm32·单片机·嵌入式硬件
d111111111d4 小时前
C语言中static修斯局部变量,全局变量和函数时分别由什么特性
c语言·javascript·笔记·stm32·单片机·嵌入式硬件·学习
北京耐用通信4 小时前
调试复杂、适配难?耐达讯自动化Ethercat转Devicenet让继电器通讯少走弯路
人工智能·物联网·网络协议·自动化·信息与通信
雪兽软件4 小时前
如何实施工业物联网自动化计划?
物联网·自动化
逐步前行4 小时前
C51_74HC595串口转并口
单片机·嵌入式硬件
Fly ☆5 小时前
arecord[linux下的录音工具]命令的用法
linux·运维·服务器·嵌入式硬件
北京耐用通信5 小时前
协议翻译大师:耐达讯自动化EtherCAT转Devicenet,电动缸的‘毫秒级指令执行专家’
人工智能·物联网·网络协议·自动化·信息与通信
minglie15 小时前
嵌入式彩屏单色字体点阵的存储结构设计
mcu