STM32f4的电容触摸按键实验

按键在哪里?

TPAD部分就是一个按键。

ALIENTEK部分就是触摸按键部分。

实物上上那个鬼图就是触摸。

按键与不按键的区别是什么?(此处插入图片)
按键之后多出一个电容Cx,区别在于电容充电所需时间不同。
为什么充电时间不同?因为按键按下后多出来一个电容,电容越多充电越久。
那靠什么检测充电时间?文档说“我们使用 PA5(TIM2_CH1)来检测 TPAD 是否有触摸。”
PA5是一个IO引脚,它和定时器2的CH1通道复用,该通道根据上一个章节可知,它有输入捕获的功能。捕获从开始到跳变的时间。如上的硬件图的红色TPAD部分,就是外接到PA5进行检测的。

具体怎么检测呢?先将PA5设置为推挽输出,该输出的功能通俗来说就是相当于内部电压输出(自行百度推挽输出和开漏输出的区别),这样输出的作用是将内部电容的电压通过这个IO口释放完。释放完之后将IO口设置为浮空输入模式,并开启定时器通道的输入捕获,先将启动时的计数值保存,当电容充满电后电平跳变,再将计数值进行保存,这样来捕获充电时间。将该充电时间Tx与正常无触摸充电时间T1进行比较,大于它就说明有触摸。
靠上拉电阻(就那个VCC3.3V)开始充电,充电一段时间后就会有高低电平跳变,而一旦按压触摸屏之后,需要充电的时间变长。当跳变为高电平的时候就相当于充满了。
原理大致如上,接下来看程序

这个图真的太赞了,所有程序思路一目了然。(其实学硬件的程序相对软件要简单很多,只不过我们需要对硬件结构有一个清晰的了解)
Tpad_init函数,主要就是初始化输入捕获,继承上一个实验,这里的调用的函数TPAD_Get_Val();就是捕获从放电完开始充电到充电结束的时间,进行10次。取中间6次平均值。
TPAD_Get_Val()中的调用函数TPAD_Reset主要就是把从放电完开始充电进行捕获这段时间的准备工作做一下。做完之后获取该时间存到寄存器中。
TPAD_Scan函数主要就是判错,把Val中的最大值保存下来,和平均值加阈值范围比较,要是平均值加阈值比最大值还大,那获取的值肯定有问题。

后续的视频讲解还了解到,只要用到print()函数,就是可以用那个串口软件打印出来。错误!必须要添加uart_init串口函数,并且进初始化,不然就打印不出来。

while(TIM_GetFlagStatus(TIM2, TIM_IT_CC1) == RESET)//理解下这个函数,第一个参数就是确定是哪个定时器,第二个参数就是定时器中的哪个通道,RESET就是判断该定时器的该通道是否发生置位。

STM32F4触摸按键的部分理解相关推荐

  1. STM32F4单片机读取光电编码器的小理解

    STM32F4单片机读取光电编码器的小理解 大家好! 我是木兔同学,这是我第一次发CSDN的博客,本人接触的单片机主要是STM32f407,今天谈一谈STM32F4单片机读取光电编码器的小理解,希望大 ...

  2. (实验39)单片机,STM32F4学习笔记,代码讲解【FATFS实验】【正点原子】【原创】

    文章目录 其它文章链接,独家吐血整理 实验现象 主程序 FATFS初始化程序 代码讲解 其它文章链接,独家吐血整理 (实验3)单片机,STM32F4学习笔记,代码讲解[按键输入实验][正点原子][原创 ...

  3. (实验37)单片机,STM32F4学习笔记,代码讲解【内存管理实验】【正点原子】【原创】

    文章目录 其它文章链接,独家吐血整理 实验现象 主程序 内存池初始化程序 代码讲解 其它文章链接,独家吐血整理 (实验3)单片机,STM32F4学习笔记,代码讲解[按键输入实验][正点原子][原创] ...

  4. (实验50)单片机,STM32F4学习笔记,代码讲解【串口IAP实验】【正点原子】【原创】

    文章目录 ❤2023重新理解记录 其它文章链接,独家吐血整理 实验现象 主程序 IAP初始化程序 代码讲解 文章目录 ❤2023重新理解记录 其它文章链接,独家吐血整理 实验现象 主程序 IAP初始化 ...

  5. STM32F4 定时器TIM(1)定时器控制输出【使用库函数】

    高级时钟控制定时器TIM1&TIM8简介: STM32F4的高级控制定时器包含一个自动重装载计数器,计数器的输入是一个被预分频的系统时钟. 这个定时器有多种用途,包括车辆输入信号长度(输入捕获 ...

  6. STM32F4读写内部FLASH【使用库函数】

    STM32F4Discovery开发帮使用的STM32F407VGT6芯片,内部FLASH有1M之多.平时写的代码,烧写完之后还有大量的剩余.有效利用这剩余的FLASH能存储不少数据.因此研究了一下S ...

  7. 基于CMSIS创建典型STM32F4工程

    这次我们来聊聊CMSIS.之前在Kile环境下创建STM32工程的时候,对有些文件的加入总不是很了解,书上或网上建立工程的教程对于这些文件的加入也是一笔带过,或者直接不说.对于类似名叫core_cm3 ...

  8. STM32F4启动流程分析

    前言 因为在做有关STM32F407ZET6的项目,其中一项内容是通过IAP来对STM32进行在线升级,那么首先需要对STM32的启动流程需要做到详细了解. 硬件及调试配置说明: 使用芯片:STM32 ...

  9. 正点原子stm32f429 pcb_正点原子【STM32-F407探索者】第十六章 电容触摸按键实验

    1)资料下载:点击资料即可下载 2)对正点原子Linux感兴趣的同学可以加群讨论:935446741 3)关注正点原子公众号,获取最新资料更新 http://weixin.qq.com/r/hEhUT ...

最新文章

  1. ant design vue input change_Ant-design-vue项目实现动态路由
  2. 【原创】大道五目 Flash版 Demo
  3. JavaSE——常用类库(上)(泛型、Objects、Math、ArraysBigDecimal类)
  4. 记住:永远不要在MySQL中使用UTF-8
  5. ArrayList 动态数组 0119
  6. 左移和右移运算符的重载问题(里面的绝对盲点)在做了一遍,还是出错了
  7. Atitit 项目文档规范化与必备文档与推荐文档列表
  8. PDF417数据容量
  9. pygame学习笔记(6)——一个超级简单的游戏
  10. Anaconda python版本降级
  11. RTKlib软件学习(观测文件与星历文件读取)
  12. vite Unrestricted file system access to
  13. 三、动态构建GStreamer管道
  14. 近年来Person Re-identification论文汇总
  15. 关于Android 8.0/9.0 之后获取wifi名称为空的解决方法
  16. Linux电脑睡眠后黑屏打不开,电脑睡眠后黑屏打不开 电脑睡眠后黑屏打不开的原因...
  17. 讨教大学|六西格玛之属性值数据一致性分析
  18. 每日新闻:国务院印发“双创”升级版意见;北京城区禁止新建数据中心;亿元融资威客瞄准大数据和人工智能;工信部对信息通信发展四点倡议...
  19. kakfa的维护:Brock停止
  20. Windows下文件或文件夹不能删除时的解决办法

热门文章

  1. R语言 第三方软件包的下载及安装
  2. 【算法】Sunday算法(模式匹配)
  3. 给你们讲个笑话——低代码会取代程序员
  4. 从软件工程师到IT猎头
  5. CentOs虚拟机硬盘扩容
  6. C++ string 转化为LPCTSTR
  7. Springboot AOP Aspect 拦截中 获取HttpServletResponse response
  8. TOP10效率工具大集合,0-3岁运营/产品/设计的懒人高效工具!
  9. mactex学习笔记(1)
  10. 100行代码实现数字滚动抽奖功能