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

请添加图片描述

所有资源导航

其他资料目录 直戳跳转

一、资源说明

单片机型号测试条件模块名称代码功能
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	
*************************************************************************************/

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值