uFun板子上自带了一颗Touch的IC,TTP224N,其封装为SSOP-20,宽电压低功耗4路触摸IC,是小家电常用4路触摸IC。板子上也做了4个触摸的PAD给我们使用,如图,这里上下左右按键是我自己的定义,实际按照使用者自己的意思来吧,
这里还是把TTP224N的资料贴出来,虽然第一期已经贴过了:
2019-3-30 21:10 上传
点击文件名下载附件
,再贴一张PIN定义,具体的可以深入阅读手册,- *********************************************完美分割线**************************************
- 先来简单说说电容触摸按键的电气原理,当然主要的事情TTP224N已经帮我们做掉了,嘿嘿。
- 触摸开关按开关原理分类有电阻式触摸开关和电容式触摸开关,在多种技术中,电容式触摸感应技术已经成为触摸感应技术的主流,在按键方案上,能为产品带来整体的外观档次提升。
- 如下图所示,电容式开关主要由两片相邻的电路极板构成,而根据物理原理,两片极板之间会产生电容。如果手指等导体靠近这些极板,平行电容(parallelcaPACi-tance)就会与传感器相耦合。将手指置于电容式传感器上时,电容量会升高;移开手指,电容量则会降低,通过测量电容量就可以判断手指的碰触。
-
- 这就是为什么,PDA要做成类似下图这种样子的原因,要有一定过得间隙形成耦合电容,
-
- *********************************************完美分割线**************************************
- uFun电路上是通过4个IO来检测TTP224N的反馈信号,来判断具体是哪个按键按下,所以软件上首先要做的事情就是初始化这4个IO,当然,先把原理图贴出来,
-
- 再来贴初始化代码
- 原版demo里面是不管按下哪个按键,4个按键中间的LED灯就会亮一次,不按就熄灭,这里我略微做了修改,LED灯还是原来那样,按就亮不按就不亮,我加入了串口打印,在第二期里面,已经讲过了串口的应用,这里我们当然要现学现卖一下,按下上键就打印出来,其他3个按键也一样,把代码贴出来,当然,这只是一个粗糙的按键处理代码没有长按,短按,单次触发的功能,这里只是为了演示Touch的功能,仅此而已。
- //KEY0 PC5 KEY1 PC4 KEY2 PB3 KEY3 PB4
- void Touch_Key_Init(void)
- {
- GPIO_InitTypeDef GPIO_InitStructure;
- RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO, ENABLE);
- GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3 | GPIO_Pin_4;
- GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
- GPIO_Init(GPIOB,&GPIO_InitStructure);
- RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC | RCC_APB2Periph_AFIO, ENABLE);
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4 | GPIO_Pin_5;
- GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
- GPIO_Init(GPIOC,&GPIO_InitStructure);
- }
- 看下串口助手最终的打印效果如图,当然LED的效果就不演示了,
- void Touch_Key_Proc(void)
- {
- if ((key0 == 1))
- {
- Control_Touch_LED(1);
- printf("打印向右按键");
- udelay(50000);
- }
- else if(key1 == 1)
- {
- Control_Touch_LED(1);
- printf("打印向上按键");
- udelay(50000);
- }
- else if(key2 == 1)
- {
- Control_Touch_LED(1);
- printf("打印向左按键");
- udelay(50000);
- }
- else if(key3 == 1)
- {
- Control_Touch_LED(1);
- printf("打印向下按键");
- udelay(50000);
- }
- else
- {
- Control_Touch_LED(0);
- }
- }
-
- Touch的应用学会了吗,嘿嘿,贴上最终代码:
Zcore_TouchPad.rar (19.78 MB, 下载次数: 8) 2019-3-30 21:44 上传点击文件名下载附件
- *********************************************完美分割线**************************************
- 往期试用贴:第一期:https://mbb.eet-china.com/forum/topic/69612_1_1.html
第二期:https://mbb.eet-china.com/forum/topic/69773_1_1.html
- 第三期:https://mbb.eet-china.com/forum/topic/69948_1_1.html
- 更多好玩有趣的项目,可关注ZcorePlayer公众号哟~~
热门资料热门活动全部回复 3 - *********************************************完美分割线**************************************
评测文章
热帖
大家都在看的技术资料
举报
内容系网友发布,其中涉及到安全隐患的内容系网友个人行为,不代表面包板社区观点
关闭
站长推荐 /2
- 返回顶部
工具栏