使用TTP224触摸芯片时出现的一些问题
时间:2023-05-28 15:07:00
踩一些坑,总结一下
-
- 1.对数据的一些简单分析
- 2.触摸太灵敏/触摸不灵敏
- 3.这些脚位怎么写比较简单(个人)?
- 4.点动低电平输出模式完成后出现的一些问题
- 5.总结
1.对数据的一些简单分析
1)TTP224对比TTP223来说,提供了更多的触摸端口,脚位相应多了许多。 2)TTP223只有一个触摸端口,TTP224有四个。 3)TTP223是6Pin的,而TTP224是16Pin。
2.触摸太灵敏/触摸不灵敏
这两点都可以通过改变触摸端口连接的电容来解决。电容量越大,不连接电容的灵敏度越低。(根据实际情况,电容值范围为 0~50pF。)
3.这些脚位怎么写比较简单(个人)?
1)TTP224的TP0~TP3口触摸按钮2TTP224的TPQ0~TPQ3口接单片机(我用的是STC15)3)除1、2外不焊接口(模式:点动高电平输出)4)AHLB口焊,其他口不焊(我用的,模式:点动低电平输出)5)TOG口焊,其它口不焊(自
锁高电平输出)6)AHLB和TOG口焊,其他口不焊(自锁低电平输出)
4.点动低电平输出模式完成后出现的一些问题
#include #include sbit key1 = P1^4; //加sbit key2 = P1^5; //减sbit key3 = P1^6; //乘sbit key4 = P1^7; //除int a,b,c;void delay(int num){ int x,y; for(x = 0;x<num;x ) { for(y = 0;y<100;y ); }}/* 加 */int set_add(){ if(key1 == 0) { delay(10); if(key1 == 0) { while(key1 == 0); delay(10); c = a+b; } } return c;}/* 减 */int set_subtract(){
if(key2 == 0) {
delay(10); if(key2 == 0) {
while(key2 == 0); delay(10); c = a-b; } } return c;}/* 乘 */int set_multiply(){
if(key3 == 0) {
delay(10); if(key3 == 0) {
while(key3 == 0); delay(10); c = a*b; } } return c;}/* 除 */int set_devide(){
if(key4 == 0) {
delay(10); if(key4 == 0) {
while(key4 == 0); delay(10); if(b != 0) {
c = a/b; //先确定b!=0 } else {
printf("输入的参数有错误,请重新输入!"); } } } return c;}void main(){
while(1) {
set_add(); set_subtract(); set_multiply(); set_devide(); }}
问题1:触摸按键很快的轻点才有反应问题2:经常触摸不到问题3:触摸这个按钮实现了另一个按钮的功能解决方案:把每个按钮的功能函数下面的第一个delay(10)改为delay(1000),然后把按钮之间的距离拉大一点,然后就稳定了。
5.总结
1.触摸按键之间距离不能太近,会互相干扰,容易误操作。2.两次判断中间的延时不能太短,这点感觉跟机械按键有点区别,我的机械按键延时只用了delay(10),这个得再长一些。3.按键的灵敏度之前设置的太高,一点就疯狂运算,然后加了个防抖,稳定多了。