[开发板与模块] 【ESK32-30519 + ESK32-21001测评】触摸键与参数设置

[复制链接]
1035|7
 楼主| jinglixixi 发表于 2022-9-16 11:01 | 显示全部楼层 |阅读模式
本帖最后由 jinglixixi 于 2022-9-17 12:08 编辑

ESK32-30519 开发板上配置了6个触摸键,在数码管的配合下可实现键值的显示,其电路原理图如图1所示。
1.jpg
1 触摸键电路

6个触摸键在核心板上的名称为PAD1~PAD6,在程序中所对应的按键名称为KEY16KEY17KEY22KEY23KEY24KEY25,故在分析键值时是按如下的程序来完成。
  1. if(TKL_Is_KeyPress(i))
  2. {
  3.                    switch(i)
  4.                    {
  5.                                      case 16:   showNumber0=2;
  6.                                                break;
  7.                                      case 17:   showNumber0=1;
  8.                                                break;
  9.                                      case 22:   showNumber0=4;
  10.                                                break;
  11.                                      case 23:   showNumber0=3;
  12.                                                break;
  13.                                      case 24:   showNumber0=6;
  14.                                                break;
  15.                                      case 25:   showNumber0=5;
  16.                                                break;
  17.                                      default:    showNumber0=0;
  18.                                                break;
  19.                     }
  20. }

而按键与芯片引脚的具体连接关心是靠如下的定义来建立的。
  1. #define TKL_SEL_KEY16_AFIO   AFIO_GPxConfig(GPIO_PB ,AFIO_PIN_0  ,AFIO_MODE_12);
  2. #define TKL_SEL_KEY17_AFIO   AFIO_GPxConfig(GPIO_PB ,AFIO_PIN_1  ,AFIO_MODE_12);
  3. #define TKL_SEL_KEY22_AFIO   AFIO_GPxConfig(GPIO_PB ,AFIO_PIN_4  ,AFIO_MODE_12);
  4. #define TKL_SEL_KEY23_AFIO   AFIO_GPxConfig(GPIO_PB ,AFIO_PIN_5  ,AFIO_MODE_12);
  5. #define TKL_SEL_KEY24_AFIO   AFIO_GPxConfig(GPIO_PC ,AFIO_PIN_1  ,AFIO_MODE_12);
  6. #define TKL_SEL_KEY25_AFIO   AFIO_GPxConfig(GPIO_PC ,AFIO_PIN_2  ,AFIO_MODE_12);

通过对例程LEDC+TouchKey的编译和下载,其功能是:
在没有按键按下时,最右侧的数码管显示0,若按下PAD1~PAD6的任意一个键,则显示对应的数字编号1~6

那么是该程序是否可以完成参数设置的任务呢?
显然是不可取得,因为它只能提供6种数值状态的处理,这明显是不能满足有一定数值宽度的要求的。

那么该如何来实现呢?
我们可以设置3个键来分别实现数值递增、数值递减及确认处理功能。
具体的就是以PAD1为数值递增键, PAD3为数值递减键,PAD5为确认处理键。
相应的处理程序为:
  1. for(u8 i=0;i<28;i++)
  2. {
  3.                    if(TKL_Is_KeyPress(i))
  4.                    {
  5.                                      switch(i)
  6.                                      {
  7.                                                         case 17:  m=m+1;
  8.                                                                       break;
  9.                                                         case 23:  if(m>1) m=m-1;
  10.                                                                       break;
  11.                                                         case 25:   m=0;
  12.                                                                       break;
  13.                                      }
  14.                                      n=m/10;
  15.                                      delay(100);
  16.                    }
  17. }


相应的数值显示程序为:
  1. if(gIsUpdateChar)
  2. {
  3.                    LEDC_SetData(HTCFG_LEDC_COM_D1,  NumberChar[n/1000]);
  4.                    LEDC_SetData(HTCFG_LEDC_COM_D2,  NumberChar[n%1000/100]);
  5.                    LEDC_SetData(HTCFG_LEDC_COM_D3,  NumberChar[n%100/10]);
  6.                    LEDC_SetData(HTCFG_LEDC_COM_D4,  NumberChar[n%10]);
  7.                    gIsUpdateChar = FALSE;
  8. }


经程序的编译和下载,则可得到图2至图4的显示效果,即按下PAD1时,数值依次递增;按下PAD3时,数值依次递减;按下PAD3时,则数值清零以表示完成设置。
2.jpg
2 数值递增
3.jpg
3 数值递减
4.jpg
4 确认后清零

albertaabbot 发表于 2022-11-5 11:32 | 显示全部楼层
这个板子怎么跟别人的不一样啊。              
averyleigh 发表于 2022-11-5 11:42 | 显示全部楼层
触摸的灵敏度怎么样              
vivilyly 发表于 2022-11-5 11:59 | 显示全部楼层
板子是申请的?还是楼主自己设计的?
chenjun89 发表于 2022-11-5 12:11 来自手机 | 显示全部楼层
触摸按键可以做成矩阵嘛?
 楼主| jinglixixi 发表于 2022-11-5 17:21 | 显示全部楼层
vivilyly 发表于 2022-11-5 11:59
板子是申请的?还是楼主自己设计的?

申请的
 楼主| jinglixixi 发表于 2022-11-5 17:21 | 显示全部楼层
averyleigh 发表于 2022-11-5 11:42
触摸的灵敏度怎么样

很敏感
 楼主| jinglixixi 发表于 2022-11-5 17:26 | 显示全部楼层
chenjun89 发表于 2022-11-5 12:11
触摸按键可以做成矩阵嘛?

没尝试过,按键个数在限定范围内应该问题不大,所谓触摸其原理不就是电位感应吗。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

521

主题

2949

帖子

39

粉丝
快速回复 在线客服 返回列表 返回顶部