【STM32】电容触摸按键

news2024/11/15 1:36:46

电容按键就是酷,但据我使用过电容按键版的洗澡计费机子后,一生黑(湿手优化没做好的电容按键简直稀碎)。

大部分图片来源:正点原子HAL库课程

 专栏目录:记录自己的嵌入式学习之路-CSDN博客


目录

1    触摸按键原理

2    测量是否触摸的原理

3    关键点

3.1    充电时间测量

3.2    开机校准

3.3    轮询充电时间

3.4    阻止多次按下的响应


1    触摸按键原理

触摸按键可以理解为一个电容。


2    测量是否触摸的原理


3    关键点

3.1    充电时间测量

(1)    放电并进入充电状态:

        a)    GPIO设置为推挽输出,并输出低电平,延时个几毫秒让电容放电;

        b)    将输入捕获的标志位清空;

        c)    将计数器的值清空;

        d)    GPIO设置为浮空输入,这里注意上下拉一定要设置为无,否则默认是上拉输入,就不是浮空了。

(2)    获取充电上升沿产生时间:

        a)    循环检测输入捕获标志位;

        b)    若标志为RESET,则在循环中一次次获取计数器的值,若计数器的值快溢出了,就视为超时,返回计数器的值;

        c)    若标志位SET则不进入循环,直接输出输入捕获的比较值,该值则为充电过程中的计数次数。

3.2    开机校准

开发板上电的时候就需要测试一次没有触摸时的充电时间,可以在定时器初始化后调用测量。

校准时可以考虑多次测量,去掉最大值,去掉最小值,再平均,以获得较为准确的无触摸充电时间。

3.3    轮询充电时间

使用定时器或者在main函数while循环中定期调用充电时间测量函数进行测量,若测出来的充电时间大于初始的无触摸充电时间一定程度(注意⚠️!是大于一定程度,而不是仅仅大于,因为无触摸时充电时间也有一定的跳动,因此应该大于其一定程度才能算触摸了),则可以判定触摸按键被触摸。

此处,轮询的每一次都可以考虑多次测量,去掉最大值,去掉最小值,再平均,以获得较为准确的触摸充电时间。

3.4    阻止多次按下的响应

使用一个标志,在按下后置1,且每次按下后当且仅当该标志为0时才发生按键响应动作,而在检测到没按下的状态将该标志置0。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2075384.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

IPv4和IPv6的区别是什么?什么是局域网和广域网,公网IP和私有IP?

文章目录 1.基本网络2.局域网3.广域网4.IPv4与NAT5.公网IP和私有IP6.IPv6 1.基本网络 我们都知道计算机的数据都是存在各自硬盘中的,与其他计算机之间没有人任务关系. 假设计算机A需要给计算机B发送数据,可以选择使用U盘这类移动存储数据来拷贝数据来实现数据交互,但是这样一…

惊艳开源界!20.6K+星标瞩目,打造高性能LLM(大型语言模型)应用的开发平台

项目简介 Dify 是一个开源的LLM(大型语言模型)应用开发平台,它通过直观的界面结合了AI工作流程、RAG(检索-分析-生成)管道、代理功能、模型管理、可观察性特性等,使用户能够快速从原型设计转向产品生产。 …

一起搭WPF之列表数据绑定

一起搭WPF之列表数据绑定 1 前言2 数据绑定2.1 前端2.2 后端实现2.2.1 界面后台2.2.2 模型与逻辑 3 问题3.2 解决 总结 1 前言 之前已经简单介绍了列表的大致设计,在设计完列表界面后,我们可以开展列表的数据绑定,在前端显示我们的数据&…

【问题处理】前端Vue项目遇到的一些问题及处理方式

每次新整一个项目的时候,开端总是会遇到各种奇奇怪怪的问题,一步一坎的感觉,但是没关系,遇到了就一步一步去解决,当把所有问题都处理后,成功运行起来,就会突然很有成就感,一切都是那…

大模型嵌入向量Embeddings

版权声明 本文原创作者:谷哥的小弟作者博客地址:http://blog.csdn.net/lfdfhlEmbeddings概述 嵌入(Embeddings)概述 基本概念 嵌入,或称为Embeddings,在机器学习领域中扮演着至关重要的角色。它是一种将离散数据元素,如文本中的单词或图像中的像素点,映射到连续的向量…

虹科方案 | 疫苗冷链温度监测解决方案

通过WHO PQS标准的支持和稳定性预算的应用,我们可以更好地保障疫苗在全球范围内的安全运输和储存,接下来让我们了解一下既能计算药品剩余稳定性预算,又符合WHO PQS预认证的疫苗冷链温度监测解决方案。 疫苗冷链温度监测解决方案 根据WHO和《…

dpdk解析报文协议-基于l2fwd

dpdk解析报文协议-基于l2fwd 0 前置条件 1、这里需要两台虚拟机,配置了相同的虚拟网络,可以通过tcpreplay在一台虚拟机回放报文,在另一台虚拟机通过tcpdump -i 网卡名 捕获到。 具体配置可参考https://www.jb51.net/server/2946942fw.htm 2…

IP SSL:最快捷的安全证书

在这个数字化时代,企业面临着前所未有的挑战——如何在保证业务高效运行的同时保护其核心资产免受网络威胁。随着网络安全事件频发,企业和个人对数据安全的关注度达到了前所未有的高度。在此背景下,IP SSL(Internet Protocol Secu…

Python分布式任务处理库之dramatiq使用详解

概要 在现代 Web 应用和数据处理任务中,异步任务处理是一个至关重要的部分。Dramatiq 是一个用于分布式任务处理的 Python 库,旨在提供简单、可靠的任务队列解决方案。与其他任务队列库相比,Dramatiq 更加轻量级,且易于上手。它的设计目标是帮助开发者轻松地将耗时的任务放…

【开源分享】在线客服系统PHP源码 带搭建教程

系统的主要特色功能 自动回复和机器人知识库:通过后台设置机器人知识库,系统可以根据关键词自动回复用户,提高响应速度和服务效率。 内容过滤:支持设置违禁词,避免接收包含不良信息的用户消息,维护平台健…

海康VisionMaster使用学习笔记17-定位项目误差分析及精度提高

定位问题排查步骤 机构及成像排查 标定过程排查 标定数据质量排查 标定结果排查 示教过程排查 注意事项总结

Kompose工具:转换Compose项目为K8S项目

Docker与Kubernetes系列 转换Compose项目为K8S项目 - 文章信息 - Author: 李俊才 (jcLee95) Visit me at CSDN: https://jclee95.blog.csdn.netMy WebSite:http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddress of this article:https://blog.cs…

光储电站联合配置!多种调度模式下的光储电站经济性最优储能容量配置分析程序代码!

前言 不同于光伏独立系统以平衡负荷电量为目标,光伏电站需要跟踪调度中心下达的计划出力曲线。光伏发电存在随机性和波动性的特点,大规模集中式光伏电站集群引起出力变化,并且其有功功率上调节能力较弱,将大量占用系统备用资源&a…

MacOS安装Axure10

MacOS安装Axure10 小阿呜有话说一、 软件下载&安装与激活二、Axure10软件汉化 叮嘟!这里是小啊呜的学习课程资料整理。好记性不如烂笔头,今天也是努力进步的一天。一起加油进阶吧! 小阿呜有话说 前不久换了新电脑,需要重新安…

文心快码Baidu Comate 帮你解大厂面试题:spring如何实现交叉依赖的注入?

🔍【大厂面试真题】系列,带你攻克大厂面试真题,秒变offer收割机! ❓今日问题:在8g内存的机器,能否启动一个7G堆大小的java进程? ❤️一起看看文心快码Baidu Comate给出的答案吧!如…

设计模式2个黄鹂鸣翠柳-《分析模式》漫谈23

DDD领域驱动设计批评文集 做强化自测题获得“软件方法建模师”称号 《软件方法》各章合集 “Analysis Patterns”的第一章有这么一句: The "Gang of Four" book has had much more influence in software patterns than Alexanders work, and three o…

Linux随记(十一)(部署flink-1.16.3、jdk-11.0.19、zookeeper-3.4.13、kafka_2.12-2.2.2)

一、部署flink-1.16.3、jdk-11.0.19、zookeeper-3.4.13、kafka_2.12-2.2.2 #软件下载 https://archive.apache.org/dist/kafka/2.2.2/kafka_2.12-2.2.2.tgz https://archive.apache.org/dist/zookeeper/zookeeper-3.4.13/zookeeper-3.4.13.tar.gz https://archive.apache.org/…

油价波动加剧:需求忧虑与OPEC+增产决策成焦点

周五油价反弹难掩周度跌势 尽管周五油价在美联储降息预期的提振下大幅上扬,但本周整体油价仍录得下跌。WTI原油和布伦特原油分别下跌2.4%和0.83%,显示出市场对全球经济前景及原油需求的担忧。 OPEC增产决策悬而未决 OPEC成员国正面临增产决策的关键时刻。…

USB3.2 摘录(八)

系列文章目录 USB3.2 摘录(一) USB3.2 摘录(二) USB3.2 摘录(三) USB3.2 摘录(四) USB3.2 摘录(五) USB3.2 摘录(六) USB3.2 摘录&…

【Kotlin设计模式】Kotlin实现适配器模式

前言 适配器模式(Adapter Pattern)的核心将某个类的接口转换成客户端期望的另一个接口表示,使得客户端能够通过自己期望的接口与不兼容的类进行交互。适配器模式有三种实现方式,分别是类适配器模式、对象适配器模式、 接口适配器模式。 我们假设有个视频…