7196|4

1万

帖子

16

TA的资源

版主

楼主
 

CH554评测:五,电容按键TOUCHKey例程的疑问 [复制链接]

本帖最后由 ddllxxrr 于 2017-11-4 17:54 编辑

我今天想用到按键,见开发板上有,就没有动别的心思,就把例程上给的HEX直接烧录到开发板。
想看下按键好用不啦。可让我吃惊的是,只有K2和k3可以串口输出,但串口输出的全是第3通道。如下面这个样子,无论按K2或K3都输出:
  1. QueryTouchkey chanel 03
复制代码


翻开原理更让我不解,居然是键子不是单独的而是相互连的,见下图:




上图的k1k2,没有直接接地,而是同K3,K4配合的,K3,K4是一端接地的,但我明明是K2,K3好用。

我重新建个工程,重新编译,不用中断,但是还是一样,程序也就是走查询那段程序(没用中断):
  1. while(1)                                                                  
  2.     {                        
  3.       TouchKeyChannelQuery();
  4. if(KeyBuf)
  5.       {                                                
  6.         printf("Query TouchKey Channel %02x \n",(UINT16)KeyBuf);     
  7.         KeyBuf        = 0;
  8.         mDelaymS(20);   
  9.       }
  10. //       mDelaymS(100);   
  11.     }
复制代码
而查询函数如下:
  1. /*******************************************************************************
  2. * Function Name  : TouchKeyChannelQuery()
  3. * Description    : 触摸按键通道状态查询
  4. * Input          : None
  5. * Output         : None
  6. * Return         : None
  7. *******************************************************************************/
  8. void TouchKeyChannelQuery()
  9. {
  10.           UINT8        ch;
  11.     UINT16 KeyData;

  12.     while((TKEY_CTRL&bTKC_IF) == 0);                                          //bTKC_IF变为1时,本周期采样完成
  13.     KeyData = TKEY_DAT;                                                       //保持87us,尽快取走
  14.     ch = TKEY_CTRL&7;                                                         //获取当前采样通道
  15.     if ( ch > KEY_LAST ){
  16.        TKEY_CTRL = TKEY_CTRL & 0xF8 | KEY_FIRST;                              //从首通道开始采样
  17.     }                       
  18.     else
  19.     {
  20.        TKEY_CTRL ++;                                                          //切换至下一个采样通道
  21.     }
  22.     if ( KeyData < (KeyFree[ch-KEY_FIRST] - KEY_ACT) )                        //如条件满足,代表按键按下   
  23.     {
  24.         KeyBuf=ch;                                                            //可以在此处进行按键动作处理或者置标志通知main进行处理
  25.     }
  26. }
  27. #endif
复制代码


我把代码下进去后,我试了下一样,但更奇葩的事发生了,我的手指偶尔碰了下,插针的P10和P30
具然出现了第一通道,截图如下:


不知大家的怎么样,我的TouckKey例程,跑起来就是这个样子。

是我的个例还是大家都这个样子????


此内容由EEWORLD论坛网友ddllxxrr原创,如需转载或用于商业用途需征得作者同意并注明出处




此帖出自单片机论坛

最新回复

你把板子上的LED拆掉就行识别4和按键了。 触摸按键我们分为自容式(通道对地),互容式(通道之间),所以有2种按键构成形态。  详情 回复 发表于 2017-11-6 15:19
点赞 关注
个人签名http://shop34182318.taobao.com/
https://shop436095304.taobao.com/?spm=a230r.7195193.1997079397.37.69fe60dfT705yr
 

回复
举报

875

帖子

1

TA的资源

纯净的硅(高级)

沙发
 
看了半天也没有看明白你到底说了什么,可能是我的理解能力太差了,你好好组织下语言吧,感觉你的话我都看不懂
此帖出自单片机论坛

点评

重新组织语言了,我觉得,应能看明白的,反正我明白  详情 回复 发表于 2017-11-4 17:59
 
 

回复

1万

帖子

16

TA的资源

版主

板凳
 
曹伟1993 发表于 2017-11-4 11:39
看了半天也没有看明白你到底说了什么,可能是我的理解能力太差了,你好好组织下语言吧,感觉你的话我都看不 ...

重新组织语言了,我觉得,应能看明白的,反正我明白
此帖出自单片机论坛
 
个人签名http://shop34182318.taobao.com/
https://shop436095304.taobao.com/?spm=a230r.7195193.1997079397.37.69fe60dfT705yr
 
 

回复

12

帖子

0

TA的资源

一粒金砂(初级)

4
 
去官网看看,或者联系原厂试试,http://www.wch.cn/bbs/thread-65023-1.html
此帖出自单片机论坛
 
 
 

回复

63

帖子

0

TA的资源

一粒金砂(中级)

5
 
你把板子上的LED拆掉就行识别4和按键了。
触摸按键我们分为自容式(通道对地),互容式(通道之间),所以有2种按键构成形态。
此帖出自单片机论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表