CH32V通用MCU工程添加触摸库说明
CH32V通用MCU工程添加触摸库说明
本说明所指的通用MCU包含CH32X03x系列,CH32Vx系列,CH32V30x系列。
添加的触摸库包含:CH32_touchKey.h、libCH32X035_TKY.a/lib_CH32V203_TKY.a/libCH32V307.a(具体库文件根据MCU系列选择);使用前必须按所选择的通道数量重新定义 CH32_touchKey.h 中的如下宏定义:
#define MAX_QUEUE_NUM 2 //--使用的触摸按键通道数目—
其中 MAX_QUEUE_NUM,必须和通道初始化中的初始化数量(即按键数量)严格对应。
此外需要在工程里定义一个数组,用于初始化,数组名称不限,长度为宏定义MAX_QUEUEBUF_LEN,如 UINT8 tkyBuf[MAX_QUEUEBUF_LEN];
触摸按键的流程如下:
触摸基础初始化参数中需要注意的几个参数如下:
- 滤波模式:目前主要推荐模式3或者模式5,模式3是阻塞模式的,模式5是非阻塞式的;
- 滤波等级:数字越大,获取按键的时间就越长;
- 触摸按键缓存:在工程中添加的数组“tkybuf[MAX_QUEUE_NUM]”;
- 其余参数可以不做修改;
触摸通道初始化中需要注意的参数如下:
- 队列号:触摸按键在键值中的bit位;
- 通道号:触摸按键对应的ADC通道;
- 上升门槛值:建议最大变化量的70%;
- 下降门槛值:可以根据按键响应速度要求比上升门槛值大或者小,但是不建议超过最大变化量的90%或者小于最大变化量的40%;
- 充电时间:该参数比较重要,通过调整该参数将基线值调整到3200~3800之间,只有见限制在这个范围才能将触摸按键最准确的检测到。
- 睡眠模式基本都给0,低功耗应用的时候给1;
- 基线值获取:参考例程即可,不需要修改;
所有初始化配置完成后,需要在程序主循环中打印每个通道的基线值以及采样值,根据基线值大小调整充电次数,直至基线值保持在3200-3800之间并相对稳定;根据通道采样值确定上升门槛值以及下降门槛值,通过这两个值确定按键响应速度以及按键扫描结果。
通过以上调整完成后就可以进行正常的按键检测。对于触摸按键有认证以及检测要求的需要与我们的FAE单独联系,确认检测内容以及需求。