K_A35_017 基于STM32等单片机驱动TTP229矩阵触摸传感器 串口与OLED0.96双显示

news2024/9/25 15:28:41

K_A35_017 基于STM32等单片机驱动TTP229矩阵触摸传感器 串口与OLED0.96双显示

  • 所有资源导航
  • 一、资源说明
  • 二、基本参数
    • 参数
    • 引脚说明
  • 三、驱动说明
    • 时序:
    • 对应程序:
  • 四、部分代码说明
    • 1、接线引脚定义
      • 1.1、STC89C52RC+TTP229矩阵触摸模块
      • 1.2、STM32F103C8T6+TTP229矩阵触摸模块
  • 五、基础知识学习与相关资料下载
  • 六、视频效果展示与程序资料获取
  • 七、注意事项
  • 八、接线说明
    • STC89C52RC
    • STM32F103C8T6

请添加图片描述

所有资源导航

其他资料目录 直戳跳转

一、资源说明

单片机型号测试条件模块名称代码功能
STC89C52RC晶振11.0592MTTP229矩阵触摸模块STC89C52RC驱动TTP229矩阵触摸模块 串口与OLED0.96双显示
STM32F103C8T6晶振8M/系统时钟72MTTP229矩阵触摸模块STM32F103C8T6驱动TTP229矩阵触摸模块 串口与OLED0.96双显示

二、基本参数

参数

请添加图片描述

引脚说明

TTP229矩阵触摸传感器引脚说明
VCC电源正极3.3/5V
GND负极 接GND
SDO在 2-线串行通讯方式下为数据输出端口,由 TP1 可选 高/低电平有效
SCL串行时钟输入端口,2-线串行模式下可由 TP1 选择低/高电平有效

三、驱动说明

时序:

请添加图片描述

对应程序:

以51为例

uint16_t TTP229_Read(void)
{
	uint8_t i;
	uint16_t temp = 0;
	TTP229_SDO=0;
	delay10us(12);
	TTP229_SDO=1;
	delay10us(2);	
	for(i=0;i<16;i++)
	{
		temp>>=1;
		TTP229_SCL=0;
		if(!TTP229_SDO)
			temp|=0x8000;
		TTP229_SCL=1;
	}
return temp;
}
/*******************************************************************************
* 函 数 名         : KeyDown
* 函数功能		   : 检测有按键按下并读取键值
* 输    入         : 无
* 输    出         : 无
*******************************************************************************/
void KeyDown(void)
{

			KeyValue=TTP229_Read();
			switch(KeyValue)
			{

				case(0x0001):	KeyValue=1;break;
				case(0x0002):	KeyValue=2;break;
				case(0x0004):   KeyValue=3;break;
				case(0x0008):	KeyValue=4;break;

				case(0x0010):	KeyValue=5;break;
				case(0x0020):	KeyValue=6;break;
				case(0x0040):   KeyValue=7;break;
				case(0x0080):	KeyValue=8;break;

				case(0x0100):	KeyValue=9;break;
				case(0x0200):	KeyValue=10;break;
				case(0x0400):   KeyValue=11;break;
				case(0x0800):	KeyValue=12;break;

				case(0x1000):	KeyValue=13;break;
				case(0x2000):	KeyValue=14;break;
				case(0x4000):   KeyValue=15;break;
				case(0x8000):	KeyValue=16;break;				
	
		 }
	

}

四、部分代码说明

1、接线引脚定义

需要自定义引脚可在此处更改,STM32要自定义引脚的话也要注意引脚时钟使能的更改

1.1、STC89C52RC+TTP229矩阵触摸模块

//TTP229矩阵触摸传感器引脚定义

sbit TTP229_SCL=P1^0;
sbit TTP229_SDO=P1^1;

//OLED0.96模块引脚定义
sbit SCL=P1^2; //串行时钟
sbit SDA=P1^3; //串行数据

1.2、STM32F103C8T6+TTP229矩阵触摸模块

//TTP229矩阵触摸传感器引脚定义   
		#define               TTP229_GPIO_SDO_CLK_FUN                  RCC_APB2PeriphClockCmd
#define               TTP229_GPIO_SDO_CLK                      RCC_APB2Periph_GPIOA
#define               TTP229_GPIO_SDO_PORT    	               GPIOA			   
#define               TTP229_GPIO_SDO_PIN		                   GPIO_Pin_0
#define               TTP229_GPIO_SDO_Mode		                 GPIO_Mode_IPU

#define               TTP229_GPIO_SCK_CLK_FUN                 RCC_APB2PeriphClockCmd
#define               TTP229_GPIO_SCK_CLK                     RCC_APB2Periph_GPIOA
#define               TTP229_GPIO_SCK_PORT    	              GPIOA			   
#define               TTP229_GPIO_SCK_PIN		                  GPIO_Pin_1
#define               TTP229_GPIO_SCK_Mode		                GPIO_Mode_Out_PP

//OLED0.96模块引脚定义					
//-----------------OLED IIC端口定义----------------  					   

/*STM32F103C8T6芯片的硬件I2C: PB6 -- SCL; PB7 -- SDA */
GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_6 | GPIO_Pin_7;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_OD;//I2C必须开漏输出
GPIO_Init(GPIOB, &GPIO_InitStructure);

五、基础知识学习与相关资料下载

1、STC89C52RC程序下载 直戳跳转

2、STM32F103C8T6程序下载
(1)串口下载 直戳跳转
(2)ST-LINK下载 直戳跳转
(3)J-LINK下载 直戳跳转
(4)DAP-LINK下载 直戳跳转

3、OLED0.96程序说明 直戳跳转

4、串口助手下载与使用
(1)安信可调试助手使用 直戳跳转
(2) sscom33串口调试助手使用 直戳跳转
(3)STC-ISP串口调试助手使用 直戳跳转

六、视频效果展示与程序资料获取

视频连接 直戳跳转
资料获取 ( 滑到最后添加个人号)

七、注意事项

1、VCC GND请勿接反,接反易烧
2、OLED显示异常时,排除接线接触不良

八、接线说明

STC89C52RC

/************************************************************************************

//  功能描述   : TTP229矩阵触摸按键模块测试程序
//  测试条件   : STC89C52RC   晶振11.0592
接线
TTP229矩阵触摸按键模块----------------------------STC89C52RC
//默认8键模式  短接P1接线座的3处两个排针短接配置成16位
VCC-----------------------------------------------5V
GND-----------------------------------------------GND
SDO-----------------------------------------------P1.1
SCL-----------------------------------------------P1.0


OLED0.96(IIC) ------------------------------------STC89C52RC
VCC-----------------------------------------------3.3V
GND-----------------------------------------------GND
SCL-----------------------------------------------P1^2
SDA-----------------------------------------------P1^3
*************************************************************************************/

STM32F103C8T6

/************************************************************************************
//  功能描述   : TTP229矩阵触摸按键模块测试程序
//  测试条件   : STM32F103C8T6   晶振8M  系统时钟 72M
接线

TTP229矩阵触摸按键模块----------------------------STM32F103C8T6
//默认8键模式  短接P1接线座的3处两个排针短接配置成16位
VCC-----------------------------------------------5V
GND-----------------------------------------------GND
SDO-----------------------------------------------PA0
SCL-----------------------------------------------PA1

OLED0.96
VCC-- -------------------------------------------3.3V
GND- --------------------------------------------GND
SCL- --------------------------------------------PB_6 //SCL
SDA- --------------------------------------------PB_7 //SDA	
*************************************************************************************/

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

医院安全(不良)事件报告系统 PHP语言实现

医院安全&#xff08;不良&#xff09;事件报告制度 一、目的 规范医院安全&#xff08;不良&#xff09;事件的主动报告&#xff0c;增强风险防范意识&#xff0c;及时发现医疗不良事件和安全隐患&#xff0c;将获取的医疗安全信息进行分析反馈&#xff0c;并从医院管理体系…

UG NX二次开发(C++)-UF_OBJ_cycle_all获取所有的体对象

文章目录 1、前言2、在UG NX创建多个体对象3、用UF_OBJ_cycle_all来创建一个新的方法4、测试结果4.1 用UF_OBJ_cycle_objs_in_part&#xff08;&#xff09;结果4.2 用 UF_OBJ_cycle_all&#xff08;&#xff09;结果 5、结论 1、前言 在前面的一篇博客中&#xff0c;我们介绍…

Linux线程:概念、特点、线程间资源共享情况

1. 线程概念 线程是轻量级的进程&#xff1b;Linux中&#xff0c;线程本质上仍是进程。 进程是OS分配资源的最小单位&#xff0c;线程是OS调度的最小单位。 NPTL 当前Linux线程库为redHat开发的NPTL&#xff0c;查看本地线程库版本&#xff1a; getconf GNU_LIBPTHREAD_VE…

在VM VirtualBox6.1中安装redhat7.3过程实录

最近试用皕杰报表工具&#xff0c;需要把报表部署到linux系统&#xff0c;因而在VM VirtualBox虚拟机上安装linux操作系统&#xff0c;现把过程记录下来&#xff0c;作为今后的备忘。 打开VM VirtualBox虚拟机&#xff0c;见下图&#xff1a; 点击控制菜单选择新建&#xff1…

第二十九章 Unity关节Joint

关节组件将刚体连接到另一个刚体或空间中的固定点。关节施加使刚体移动的力&#xff0c;而关节限制功能可以限制该移动。Unity 提供的以下关节可以对刚体组件施加不同的力和限制&#xff0c;从而使这些刚体具有不同的运动&#xff1a; Hinge Joint铰链关节&#xff1a;使两个刚…

Android 11 WebView无法加载libwebviewchromium.so

概述 Android WebView 是 Google 提供的一个预安装系统组件&#xff0c;用以支持 Android 应用显示网页内容。 如果您希望在客户端应用中提供 Web 应用&#xff08;或只是网页&#xff09;&#xff0c;则可以使用 WebView 执行该操作。WebView 类是 Android 的 View 类的扩展&a…

凌恩生物美文分享|HGTree v2.0:水平基因转移数据库

水平基因转移(HGT)是指遗传物在物种间从一个相邻生物体到另一个生物体横向传递&#xff0c;是原核生物遗传变异的重要过程。HGT是负责塑造原核生物基因组和在自然选择中生存的驱动力之一&#xff0c;对原核生物的进化有很大贡献&#xff0c;但它会使物种进化史复杂化&#xff0…

观景台售票情况数据分析【Python】

任务1&#xff1a;数据预处理 表格数据资源如下百度网盘&#x1f447; 链接&#xff1a;https://pan.baidu.com/s/1Ry8emM-daxoegF1di4FRyw 提取码&#xff1a;jimb author&#xff1a;用户名rating&#xff1a;消费后打的分time&#xff1a;消费时间year&#xff1a;消费年份…

小米强制淘汰老破小,苹果华为带了好头

了解电脑手机处理器参数的朋友应该对 x86 x64 ARM 等字样不陌生&#xff0c;它们代表着不同的平台架构指令集。 对普通用户来说只需要知道&#xff0c;x86 是32位、x64 &#xff08;又称x86_64、AMD64&#xff09;是64位。 手机上则是以 ARMv7、v8 版本号来作为32、64位分界。…

3 ROS2服务通讯基础

ROS2服务通讯基础 3.1 服务通讯介绍3.2 ROS2服务通讯的基本流程3.2.1 创建ROS2服务通讯功能包的基本流程3.2.2 创建ROS2服务通讯功能包示例 3.3 使用C/C实现ROS2服务通讯3.3.1 创建C/C服务通讯服务端功能包并编写节点文件3.3.2 配置C/C服务通讯服务端功能包3.3.3 编译并运行C/C…

符号三角形-计算机算法设计与分析【1600+字解析 dfs全排列 列举情况】【题意分析】【算法分析】【思路是怎么来的】【过程是什么】

符号三角形 题意分析思路过程分析算法分析 下图是由14个“”和14个“-”组成的符号三角形。2个同号下面都是“”&#xff0c;2个异号下面都是“-”。 在一般情况下&#xff0c;符号三角形的第一行有n个符号。符号三角形问题要求对于给定的n&#xff0c;计算有多少个不同的符号…

JMeter进阶——详解Java请求关于事务的操作 (附源码)

Jmeter事务操作 前面写过一篇文章&#xff0c;介绍Jmeter如何来调用java请求的&#xff0c;可以参考文章 详解JMeter Java请求的设计方法 但这篇文章中有一个问题&#xff0c;在方法public SampleResult runTest(JavaSamplerContext arg0) 中只对一个类的一个api 进行调用&am…

LeetCode 2106. 摘水果

【LetMeFly】2106.摘水果 力扣题目链接&#xff1a;https://leetcode.cn/problems/maximum-fruits-harvested-after-at-most-k-steps/ 在一个无限的 x 坐标轴上&#xff0c;有许多水果分布在其中某些位置。给你一个二维整数数组 fruits &#xff0c;其中 fruits[i] [positio…

Java Test: Specification and Structure Testing(line, branch, path coverage)

这篇文章梳理一下Java软件测试中的Secification test和Structure test。 Specification Test 规范测试&#xff08;specification test&#xff09;&#xff1a;又称黑盒测试&#xff08;black-box testing&#xff09;或需求驱动测试&#xff08;requirements-driven testin…

B树(B-tree、B-树)理论详解

文章目录 基本概念n阶B树的性质&#xff08;n>2&#xff09;B树的搜索B树元素的添加上溢出解决 删除删除叶子节点删除非叶子节点删除——导致下溢出删除——解决下溢出方法一删除——解决下溢出方法二 MongoDB 基本概念 B树是为磁盘或其他直接存取的辅助存储设备而设计的一…

Gitlab on k8s最佳实践

文章目录 gitlab on k8sGitLab部署helm 安装 postgresqlhelm 安装 redis 集群gitlab manifest 部署gitlab如何上传项目&#xff1f;gitlab监控metricsgitlab runner helm 部署helm部署问题k8s中gitlab exector架构图what is Gitlab Runner Helper?gitlab如何连接上k8s&#xf…

【Windows】关闭Windows Update自动更新

目录 一 服务中关闭Win10自动更新及关联服务 二 注册表中关闭Win10自动更新 三 组策略中关闭Win10自动更新 四 计划任务中关闭Win10自动更新 电脑系统盘不够用了&#xff0c;为此准备关闭Windows Update自动更新&#xff0c;以节省空间。为保证关闭之后不死灰复燃&#xff…

Ajax入门

在B/S架构中&#xff0c;浏览器端发送请求的传统方式如下&#xff1a; 1.直接在浏览器地址栏上输入url 2.超链接 3.from表单 4.在JavaScript代码中发送请求 1&#xff09;window.open(url) 2&#xff09;document.location.href url 3&#xff09;window.location.href url ……

优思学院|精益生产在制药行业的应用情况如何?

精益生产作为一项优化生产过程、提高效率的方法论&#xff0c;精益生产在制药行业得到了广泛应用。其核心理念是通过消除浪费&#xff0c;不断改进生产流程&#xff0c;实现资源的最大化利用和生产成本的最小化&#xff0c;从而提高企业的竞争力和市场占有率。 在制药行业&…

Java语言----LinkedList 和 链表的实现

目录 一.链表概念 二.链表的分类 三.无头单向非循环链表的实现 3.1创建简单链表 3.2 链表基本方法实现 3.3四大基本功能 3.3.1.增加元素结点 3.3.2.查找元素结点 3.3.3.删除元素结点 3.3.4.结点信息修改 四.LinkedList是什么&#xff1f; 五.LinkedList使用方法 总结 …