打印
[其它应用]

Touch Key触摸按键功能

[复制链接]
2417|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
tpgf|  楼主 | 2024-5-6 10:13 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
一、SH79F9476 资源介绍
1. 特性
SH79F9476内建触摸按键功能模块,最大能连接20个按键。
SH79F9476内建触摸按键功能模块工作电路精简,应用时无需外接电容,即可实现触摸检测功能。
硬件高抗干扰。
灵活软件库,支持上电自校准功能,低开发难度。

2. 系统框图:



3.准备环境
本文实验需要在触摸引脚接出触摸PCB,相关PCB设计可另行搜索文章处理。

二、准备工具
从官网下载STouchKey调试工具:
https://www.sinowealth.com/seach?type_id=68&a_v_type=1



下载后双击 按提示安装:



安装成功后,在安装文件夹可以看到文档 :



这两个文档是本文学习资源的主要来源。

三、开发步骤
1. 新建项目流程
(1)新建工程
打开StouchKey软件,点击“新建工程”。



(2)选择芯片和封装



(3)触摸配置按键
按自己电路板的按键顺序,依次点击TK端口,下图是示例:



(4)配置校准、调试选项
这里我们使用UART0作为调试输出引脚,按下图所示,钩选复选框 ,并设置UART0 引脚:



(5)生成工程
钩选
Keil Project,选择目标路径,点击下一页,完成配置过程 。



系统会自动打开数据观测界面。

2. 编译运行项目
关闭其它Keil工程,打开新建的触摸按键工程。

(1)设置Device芯片型号:



设置以下内容:



Erase Flash、Program Flash、Verify Flash建议钩选。

Power Source根据主板供电情况进行选择。
编译、下载、运行程序。

3. 数据观测
连接芯片上串口到电脑,



(1)STouchKey选择串口号


(2)点击启动调试



观测示例:




捕获的数据在安装目录下。

(3)触发选项设置
点击 STouchKey设置菜单,Point Trigger可以选 None不触发、Single上升沿触发、Double双边沿触发。
可以视需要调整设置:



捕获到按键示例:



四、现有项目移植流程
本示例在前面的示例项目中移植触摸功能。

1. 拷贝库文件
拷贝 sino_touchkey 到目标项目



2. keil 添加文件



添加LIB:



3. 添加 tk_conf_add.h头文件
新建组 config file,添加tk_conf_add.h文件,如下图所示:



4. 添加include包含路径



添加后项目结构如下:



由于原项目里已经有了 cpu.h 头文件定义U8等数据类型,sino_touchkey的c51_type.h 定义重复,删除原有的cpu.h,统一使用c51_type.h,并修改自己项目中的cpu.h引用。

5. 取消touch key项目的uart调试输出



示例会直接使用UART输出日志,故不再输出EUART0的调试信息。

6. main.c
#include "isr_utils.h"
#include "../sino_touchkey/Lib/sino_touchkey.h"
#include "log_utils.h"


void main() {
       
        // 选择高速时钟
        SET_MCU_CLK_RC_24M
       
        enableAllIsr();
       
        // 初始化串口
        Uart0_Init();
        LOGI((TAG,"start s=%bd", 0));
       
        timerinit();
        Touchkey_adjust();
        touchkeyinit();       //touch key 初始化
        while(1)
        {                       
                        RSTSTAT = 0;
                        if(f_5ms)
                        {
                                        f_5ms = 0;
                                        Get_TK_States();           // 按键扫描     
                                        if(sino_key_value_pre != sino_key_value){
                                                sino_key_value_pre = sino_key_value;
                                                LOGI((TAG,"touch key=%ld", sino_key_value));
                                }
       
                        }                          
        }
}



编译下载程序,运行后,按相应的按键,会通过串口输出按键信息。



关于触摸的参数调整优化以后再补充。

本文章参考学习资源来自中颖官方文档
本文代码开源地址: https://gitee.com/xundh/learn-sinowealth-51
————————————————

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/xundh/article/details/138034964

使用特权

评论回复
沙发
亚瑟| | 2024-5-24 22:36 | 只看该作者
触摸是测量adc吗

使用特权

评论回复
板凳
yangjiaxu| | 2024-5-27 21:56 | 只看该作者
这种触摸其实挺好,可以节省触摸芯片的成本

使用特权

评论回复
地板
这个软件很好,调试的时候很方便

使用特权

评论回复
5
caigang13| | 2024-6-2 17:50 | 只看该作者
这个配套软件确实好用

使用特权

评论回复
6
Henryko| | 2024-6-27 15:57 | 只看该作者
这个工具界面挺简洁的

使用特权

评论回复
7
黑心单片机| | 2024-6-27 16:44 | 只看该作者
这个好方便

使用特权

评论回复
8
药无尘| | 2024-6-28 13:28 | 只看该作者
有这个软件,开发会很轻松

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1536

主题

14520

帖子

9

粉丝