OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3203|回复: 0

电容触摸按键在不支持长按的情况下若长按则闪烁(已查阅相关资料但无结果开发板)

[复制链接]

2

主题

4

帖子

0

精华

初级会员

Rank: 2

积分
55
金钱
55
注册时间
2020-1-21
在线时间
13 小时
发表于 2020-3-6 22:34:16 | 显示全部楼层 |阅读模式
10金钱
开发板stm32f407,采用正点原子的代码
//扫描触摸按键
//mode:0,不支持连续触发(按下一次必须松开才能按下一次);1,支持连续触发(可以一直按下)
//返回值:0,没有按下;1,有按下;            
#define TPAD_GATE_VAL  100 //触摸的门限值,也就是必须大于tpad_default_val+TPAD_GATE_VAL,才认为是有效触摸.
u8 TPAD_Scan(u8 mode)
{
static u8 keyen=0; //0,可以开始检测;>0,还不能开始检测  
u8 res=0;
u8 sample=3;  //默认采样次数为3次  
u16 rval;
if(mode)
{
  sample=6; //支持连按的时候,设置采样次数为6次
  keyen=0; //支持连按   
}
rval=TPAD_Get_MaxVal(sample);
if(rval>(tpad_default_val+TPAD_GATE_VAL)&&rval<(10*tpad_default_val))//大于tpad_default_val+TPAD_GATE_VAL,且小于10倍tpad_default_val,则有效
{        
  if((keyen==0)&&(rval>(tpad_default_val+TPAD_GATE_VAL))) //大于tpad_default_val+TPAD_GATE_VAL,有效
  {
   res=1;
  }   
  //printf("r:%d\r\n",rval);                    
  keyen=3;    //至少要再过3次之后才能按键有效   
}
if(keyen)keyen--;                                   
return res;
}

在不支持长按的情况下跑程序,若长按电容触摸按键,则小灯闪烁。

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-4 08:34

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表