CH554评测:五,电容按键TOUCHKey例程的疑问
<div class='showpostmsg'> 本帖最后由 ddllxxrr 于 2017-11-4 17:54 编辑我今天想用到按键,见开发板上有,就没有动别的心思,就把例程上给的HEX直接烧录到开发板。
想看下按键好用不啦。可让我吃惊的是,只有K2和k3可以串口输出,但串口输出的全是第3通道。如下面这个样子,无论按K2或K3都输出:
QueryTouchkey chanel 03
翻开原理更让我不解,居然是键子不是单独的而是相互连的,见下图:
上图的k1k2,没有直接接地,而是同K3,K4配合的,K3,K4是一端接地的,但我明明是K2,K3好用。
我重新建个工程,重新编译,不用中断,但是还是一样,程序也就是走查询那段程序(没用中断):
while(1)
{
TouchKeyChannelQuery();
if(KeyBuf)
{
printf("Query TouchKey Channel %02x \n",(UINT16)KeyBuf);
KeyBuf = 0;
mDelaymS(20);
}
// mDelaymS(100);
}而查询函数如下:
/*******************************************************************************
* Function Name: TouchKeyChannelQuery()
* Description : 触摸按键通道状态查询
* Input : None
* Output : None
* Return : None
*******************************************************************************/
void TouchKeyChannelQuery()
{
UINT8 ch;
UINT16 KeyData;
while((TKEY_CTRL&bTKC_IF) == 0); //bTKC_IF变为1时,本周期采样完成
KeyData = TKEY_DAT; //保持87us,尽快取走
ch = TKEY_CTRL&7; //获取当前采样通道
if ( ch > KEY_LAST ){
TKEY_CTRL = TKEY_CTRL & 0xF8 | KEY_FIRST; //从首通道开始采样
}
else
{
TKEY_CTRL ++; //切换至下一个采样通道
}
if ( KeyData < (KeyFree - KEY_ACT) ) //如条件满足,代表按键按下
{
KeyBuf=ch; //可以在此处进行按键动作处理或者置标志通知main进行处理
}
}
#endif
我把代码下进去后,我试了下一样,但更奇葩的事发生了,我的手指偶尔碰了下,插针的P10和P30
具然出现了第一通道,截图如下:
不知大家的怎么样,我的TouckKey例程,跑起来就是这个样子。
是我的个例还是大家都这个样子????
此内容由EEWORLD论坛网友ddllxxrr原创,如需转载或用于商业用途需征得作者同意并注明出处
</div><script> var loginstr = '<div class="locked">查看本帖全部内容,请<a href="javascript:;" style="color:#e60000" class="loginf">登录</a>或者<a href="https://bbs.eeworld.com.cn/member.php?mod=register_eeworld.php&action=wechat" style="color:#e60000" target="_blank">注册</a></div>';
if(parseInt(discuz_uid)==0){
(function($){
var postHeight = getTextHeight(400);
$(".showpostmsg").html($(".showpostmsg").html());
$(".showpostmsg").after(loginstr);
$(".showpostmsg").css({height:postHeight,overflow:"hidden"});
})(jQuery);
} </script><script type="text/javascript">(function(d,c){var a=d.createElement("script"),m=d.getElementsByTagName("script"),eewurl="//counter.eeworld.com.cn/pv/count/";a.src=eewurl+c;m.parentNode.insertBefore(a,m)})(document,523)</script> 看了半天也没有看明白你到底说了什么,可能是我的理解能力太差了,你好好组织下语言吧,感觉你的话我都看不懂 曹伟1993 发表于 2017-11-4 11:39
看了半天也没有看明白你到底说了什么,可能是我的理解能力太差了,你好好组织下语言吧,感觉你的话我都看不 ...
重新组织语言了,我觉得,应能看明白的,反正我明白 去官网看看,或者联系原厂试试,http://www.wch.cn/bbs/thread-65023-1.html 你把板子上的LED拆掉就行识别4和按键了。
触摸按键我们分为自容式(通道对地),互容式(通道之间),所以有2种按键构成形态。
页:
[1]