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

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

  • 一、SH79F9476 资源介绍
    • 1. 特性
    • 2. 系统框图:
    • 3.准备环境
  • 二、准备工具
  • 三、开发步骤
    • 1. 新建项目流程
      • (1)新建工程
      • (2)选择芯片和封装
      • (3)触摸配置按键
      • (4)配置校准、调试选项
      • (5)生成工程
    • 2. 编译运行项目
      • (1)设置Device芯片型号:
    • 3. 数据观测
      • (1)STouchKey选择串口号
      • (2)点击启动调试
      • (3)触发选项设置
  • 四、现有项目移植流程
    • 1. 拷贝库文件
    • 2. keil 添加文件
    • 3. 添加 tk_conf_add.h头文件
    • 4. 添加include包含路径
    • 5. 取消touch key项目的uart调试输出
    • 6. main.c

本文使用的芯片是中颖 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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/569681.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Tomcat架构设计精髓分析-Connector高内聚低耦合设计

优秀的模块化设计通常都会采用高内聚、低耦合 高内聚是指相关度比较高的功能要尽可能集中,不要分散。低耦合是指两个相关的模块要尽可能减少依赖的部分和降低依赖的程序,不要让两个模块产中强依赖。 Tomca连接器需要实现的功能: 监听网络端口 接受网络…

MATLAB将多张小图整合到一张大图形成模板图

MATLAB将多张小图整合到一张大图形成模板图 代码如下: clc;close all;clear all;warning off;%清除变量 rand(seed, 100); randn(seed, 100); format long g;foldername字符模板; [datacell,filenamecell,filenameAllcell]readfun_1n(foldername); K2length(filenamecell);% …

用友 GRP-U8 fastjson远程代码执行漏洞复现(XVE-2024-8863)

0x01 产品简介 用友GRP-U8R10行政事业内控管理软件是用友公司专注于国家电子政务事业,基于云计算技术所推出的新一代产品,是我国行政事业财务领域最专业的政府财务管理软件。 0x02 漏洞概述 用友 GRP-U8 R10系列版本 VerifyToken 接口存在低版本fastjson反序列化漏洞,未经…

ESP32环境下基于SD卡与FTP实现温湿度数据采集与存储

本篇文章将介绍如何利用ESP32开发板结合SD卡与FTP服务器功能,实现温湿度数据的实时采集、存储与远程访问。项目代码基于Arduino IDE平台编写,主要依赖于以下库: SPIDHTWiFitime.hESP-FTP-Server-LibSDSPIFFSFS 1. 硬件连接与配置 1.1 所需…

Python | Leetcode Python题解之第46题全排列

题目: 题解: class Solution:def permute(self, nums):""":type nums: List[int]:rtype: List[List[int]]"""def backtrack(first 0):# 所有数都填完了if first n: res.append(nums[:])for i in range(first, n):# 动…

漫谈AI 时代的信息模型

模型化- 数字化转型的重要基石 在各行各业推行数字化转型过程中,构建信息化模型十分重要,它是数字化转型的基石。事实上,数字化转型的核心是“万物皆模型”,在工业领域,以德国为主导的工业4.0 发展进程中,…

超越5G:迈向6G网络传感前沿的革命性飞跃

6G推动的传感技术发展有望将人类感官拓展到目前的极限。从精确测绘到活动识别,联网传感揭示了看不见的事物,使我们能够理解和预测以前未知的周围环境。高精度定位、增强人类感官和手势/活动识别的无缝集成预示着未来机器将以前所未有的自主性运行... 在飞…

安全AI未来 | C3安全大会 · 2024,数据驱动 AI原生

数字为时代变革注入动力,AI为重塑社会文明带来原力。数智浪潮中,我们见证着时代跃迁的巨变,面临着适变、应变、驭变的挑战。 数字驱动、AI原生。数字的流动不仅承载着信息,更将激活未来的无限价值;AI,不…

为什么要写技术方案?

技术方案是为研究解决各类技术问题,有针对性,系统性的提出的方法、应对措施及相关对策。技术方案设计是一个技术开发者必备的能力,特别是对于高级、资深、架构师等角色。技术方案设计不仅能够帮助我们明确需求,规划架构&#xff0…

【数据库】三、数据库SQL语言命令(基础从入门到入土)

【全文两万多字,涵盖大部分常见情况,建议点赞收藏】 目录 文章目录 目录安装SQL语言1.使用2.DATABASE查看所有库新建数据库修改数据库删除数据库连接数据库 3.TABLE创建表查看库所有表删除表查看表信息重命名表修改表字段(列)表中…

自动批量将阿里云盘文件发布成WordPress文章脚本源码(以RiPro主题为例含付费信息下载地址SEO等自动设置)源码

背景 很多资源下载站,付费资源下载站,付费内容查看等都可以用WordPress站点发布内容,这些站点一般会基于一个主题,付费信息作为文章附属的信息发布,底层存储在WP表里,比如日主题,子比主题等。 …

js的算法-插入排序(直接插入排序)

插入排序 插入排序是一种简单直接的排序方法,其基本思想是每次将一个待排序的记录按其关键字大小插入到前面已经排好序的子序列,直到全部记录插入完成。由插入排序的思想可以引申出三个重要的排序算法: 直接插入排序、折半插入排序和希尔排序…

一份本金 能得两份利息?

构建完善的量化交易策略,需要了解多种交易标的。有的产品在特殊时间可以产生超额收益。 1天期的国债逆回购的手续费为万0.1。 看似较低,因为每笔最小手续费是0.1元,如果投资者买入的金额较小(比如小于1w),…

bugku ezbypass

bugku ezbypass 1.代码审计 2.题目代码如下所示 <?php error_reporting(0); highlight_file(__FILE__);if (isset($_POST[code])) {$code $_POST[code];if (strlen($code) < 105){if (is_string($code)) {if (!preg_match("/[a-zA-Z0-9#%^&*:{}\-<\?>…

怎样用PHP语言实现远程控制三路开关

怎样用PHP语言实现远程控制三路开关呢&#xff1f; 本文描述了使用PHP语言调用HTTP接口&#xff0c;实现控制三路开关&#xff0c;三路开关可控制三路照明、排风扇等电器。 可选用产品&#xff1a;可根据实际场景需求&#xff0c;选择对应的规格 序号设备名称厂商1智能WiFi墙…

政企单位内外网数据交互,如何保障安全性和合规性?

政府内外网隔离是一种网络安全措施&#xff0c;旨在保护政府内部网络的安全性和保密性。根据国家法律要求&#xff0c;涉及国家秘密的计算机信息系统与公共网络之间必须实行物理隔离。这意味着这些系统应该被完全隔离开来&#xff0c;以防止任何未经授权的访问或数据泄露。其次…

Linux服务器安装谷歌浏览器

当我们使用自动化的时候&#xff0c;还想要将它部署到服务器上那么我们就需要安装谷歌或者其他浏览器&#xff0c;这里是以谷歌浏览器为例子 首先就是你的有安装包 我们到官网下载&#xff1a;https://www.google.cn/intl/zh-CN/chrome/&#xff0c;需要科学上网 进入官网之…

Python蜘蛛侠

目录 写在前面 蜘蛛侠 编写代码 代码分析 更多精彩 写在后面 写在前面 本期小编给大家推荐一个酷酷的Python蜘蛛侠&#xff0c;一起来看看叭~ 蜘蛛侠 蜘蛛侠&#xff08;Spider-Man&#xff09;是美国漫威漫画宇宙中的一位标志性人物&#xff0c;由传奇创作者斯坦李与艺…

工信部政策要求试点城市20%资金奖励中小企业用SaaS上云转型数字化

随着数字经济的不断发展&#xff0c;中小企业也迎来了前所未有的机遇和挑战。为了持续推动中小企业数字化转型&#xff0c;工信部出台了一项新政策&#xff0c;主要通过资金奖励的方式&#xff0c;鼓励中小企业采纳软件即服务&#xff08;SaaS&#xff09;模式&#xff0c;实现…

每日OJ题_BFS解决拓扑排序①_力扣207. 课程表

目录 拓扑排序和图的介绍 ①力扣207. 课程表 解析代码 拓扑排序和图的介绍 拓扑排序简单来说就是找到做事情的先后顺序&#xff08;拓扑排序的结果可能不是唯一的&#xff09;。 学习拓扑排序前先简单学习图的基本概念&#xff1a; 图是由顶点集合及顶点间的关系组成的一种…