STM32F4触摸按键的部分理解

STM32F4触摸按键的部分理解
STM32f4的电容触摸按键实验按键在哪里?TPAD部分就是一个按键。ALIENTEK部分就是触摸按键部分。实物上上那个鬼图就是触摸。按键与不按键的区别是什么?(此处插入图片)按键之后多出一个电容Cx,区别在于电容充电所需时间不同。为什么充电时间不同?因为按键按下后多出来一个电容,电容越多充电越久。那靠什么检测充电时间?文档说“我们使用 PA5(TIM2_CH1)来检测 TPAD 是否有触摸。”PA5是一个IO引脚,它和定时器2的CH1通道复用,该通道根据上一个章节可知,它有输入捕获的功能。捕获从开始到跳变的时间。如上的硬件图的红色TPAD部分,就是外接到PA5进行检测的。具体怎么检测呢?先将PA5设置为推挽输出,该输出的功能通俗来说就是相当于内部电压输出(自行百度推挽输出和开漏输出的区别),这样输出的作用是将内部电容的电压通过这个IO口释放完。释放完之后将IO口设置为浮空输入模式,并开启定时器通道的输入捕获,先将启动时的计数值保存,当电容充满电后电平跳变,再将计数值进行保存,这样来捕获充电时间。将该充电时间Tx与正常无触摸充电时间T1进行比较,大于它就说明有触摸。靠上拉电阻(就那个VCC3.3V)开始充电,充电一段时间后就会有高低电平跳变,而一旦按压触摸屏之后,需要充电的时间变长。当跳变为高电平的时候就相当于充满了。原理大致如上,接下来看程序这个图真的太赞了,所有程序思路一目了然。(其实学硬件