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