单片机-STM32部分:9-1、触控检测芯片

飞书文档https://x509p6c8to.feishu.cn/wiki/ILBsw4EaQiWaUukWrxEcO4XZnXc

传统物理按键

原理

玻璃盖板下通过一个触摸PAD连接到触摸芯片中,触摸PAD可以用PCB铜箔、金属片、平顶圆柱弹簧、导电棉、导电油墨、导电橡胶、导电玻璃的ITO层等。

当有人体手指靠近触摸按键时,人体手指与大地构成的感应电容并联焊盘与大地构成的感应电容,会使总感应电容值增加。

电容式触摸按键IC在检测到某个按键的感应电容值发生改变后,将输出某个按键被按下的确定信号。

PT2041A 是一款单通道触摸检测芯片。该芯片内建稳压电路,提供稳定电压给触摸感应电路使用, 同时内部集成高效完善的触摸检测算法,使得芯片具有稳定的触摸检测效果。该芯片专为取代传统 按键而设计,具有宽工作电压与低功耗的特性,可广泛地满足不同消费类应用的需求

所以,对于STM32来说,我们只需要关注QC的IO有没有电平变换,即可判断有没有手指按下。

所以这部分的代码与按键部分是完全一样的,我们可以参考7、GPIO输入 按键编写。

首先,设置PC0为输入模式,修改标签名为PAD_KEY

 同时添加LED1作为测试效果展示

然后生成工程。

添加测试代码

  while (1)
  {
    /* USER CODE END WHILE */
    /* USER CODE BEGIN 3 */
    if(HAL_GPIO_ReadPin(PAD_KEY_GPIO_Port,PAD_KEY_Pin) == 0) //判断按键KEY是否被按下
    {
        HAL_Delay(10);//延时10ms消除按键抖动
        if(HAL_GPIO_ReadPin(PAD_KEY_GPIO_Port,PAD_KEY_Pin) == 0){//再次判断KEY是否依然被按下
            HAL_GPIO_TogglePin(LED1_GPIO_Port,LED1_Pin);      //对LED引脚进行取反操作
            while(HAL_GPIO_ReadPin(PAD_KEY_GPIO_Port,PAD_KEY_Pin) == 0);  //等待按键抬起
         }
    }
  }
  /* USER CODE END 3 */

参考工程

参考飞书文档

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值