max232程序(max232cwe应用图)

max232程序(max232cwe应用图)基本计时实验 输入捕获实验 实验 3 的基础 电容按键检测实验 输出 PWM 实验 PWM 驱动无刷电机实验 原理其实非常简单 通过 TIM 定时器的输入捕获功能判断电容的充电时间 没有触摸的充电时间短 有触摸的充电时间长 经过对比来确定是否有手指触碰 图片来源 零死角玩转 STM32 库函数版 刘火良 由上面两个图片可以看出 没有手指触摸时电容为 Cx 有手指触摸时电容为 Cx Cs 根据电容充电时间公式 Vc V0 1 e t RC 明显可以看出有触摸的时间 t2 较长




  1. 基本计时实验
  2. 输入捕获实验(实验3的基础)
  3. 电容按键检测实验
  4. 输出PWM实验
  5. PWM驱动无刷电机实验

原理其实非常简单,通过TIM定时器的输入捕获功能判断电容的充电时间(没有触摸的充电时间短,有触摸的充电时间长)经过对比来确定是否有手指触碰。

定时充电怎么用Java实现_c语言


定时充电怎么用Java实现_#define_02


图片来源:零死角玩转STM32(库函数版)刘火良由上面两个图片可以看出,没有手指触摸时电容为Cx,有手指触摸时电容为Cx+Cs

根据电容充电时间公式:

Vc=V0*(1-e(-t/RC))

定时充电怎么用Java实现_算法_03


明显可以看出有触摸的时间(t2)较长,所以在设计程序是只需要测量出无触摸的时间(t1),若充电时间超出一定范围即可判定为有手指触摸。

  1. TIM定时器初始化(TIM5_Config)
  2. 电容按键初始化,并设置触摸阈值(TPAD_Init)
  3. 获取没有触摸的充电时间t0(TPAD_GetVal)
  4. 循环获取充电时间tx并将与t0对比(TAPD_GetMaxVal)
  5. 若tx超过触摸阈值,判定为有触摸(TPAD_Scan)

(0)宏定义

(1)TIM5_Config函数

(2)按键初始化

(3)触摸按键复位函数

(4)获取充电(触摸)时间

(5)获取最大触摸按键时间

(6)按键扫描函数

这一次实验没有什么难度,就是输入捕获的一个实际应用,但是有一个问题我始终不明白,在TIM5_Config函数中,如果我开启了TIM5的计数中断和CC2溢出中断,程序就会跑死,删除这句后,程序也可以正常执行,不理解,各位大佬如果知道可以评论告诉我,谢谢~


编程小号
上一篇 2025-04-01 09:51
下一篇 2025-01-25 07:17

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ri-ji/8620.html