中颖51芯片学习10. Touch Key触摸按键功能

本文使用的芯片是中颖 SH79F9476

一、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

相关推荐

  1. 安卓11修改power按键功能

    2024-04-24 15:32:02       31 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-24 15:32:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-24 15:32:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-24 15:32:02       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-24 15:32:02       20 阅读

热门阅读

  1. 虚拟化+docker概念

    2024-04-24 15:32:02       20 阅读
  2. 大数据环境下的隐私安全的图像特征提取及应用

    2024-04-24 15:32:02       18 阅读
  3. 链接备份记录

    2024-04-24 15:32:02       46 阅读
  4. c++多态

    c++多态

    2024-04-24 15:32:02      12 阅读
  5. Ubuntu中如何压缩和解压文件

    2024-04-24 15:32:02       15 阅读
  6. JVM(1)

    2024-04-24 15:32:02       37 阅读
  7. 物联网社区信息化管理系统设计的毕业论文

    2024-04-24 15:32:02       57 阅读
  8. 面试 Python 基础八股文十问十答第五期

    2024-04-24 15:32:02       44 阅读