嵌入式单片机高级篇(一)Stm32F103电容触摸按键
嵌入式单片机高级篇(一)Stm32F103电容触摸按键
Stm32F103电容触摸按键
一、电容触摸按键原理:
1、电容触摸按键电路是如何组成的?
回答:电容触摸按键的电路由一个上拉电阻、一个开关以及杂散电容组成,开关断开时,杂散电容充电,开关闭合时,杂散电容放电
2、电容触摸按键如何判别按键是否被触摸?
回答:根据电容的充电时间,当按键没有触摸时,电源只给杂散电容充电,充电时间较短,记为tcs,当按键被触摸时,相当于与杂散电容并联了一个额外的电容,此时电容充电时间变长,记为ts+tx,由电路里的总电容的充电时间的长短来判别按键是否被触摸。
当充电时间在tcs附近时,认为按键没有被触摸,当充电时间大于ts+tx时,认为按键被触摸
二、编程思路:
(1)电容的充电完成会产生一个上升沿
(2)用IO口代替开关,当IO口的状态配置成推挽输出低电平时放电,当IO口的状态配置成浮空输入时充电
(3)利用定时器的输入捕获功能捕捉到上升沿代表电容充电完成
(4)MCU 每次复位重启的时候,利用定时器捕捉上升沿,同时记录从开始到捕获到上升沿的时间,这个时间多次记录取平均值,也就是ts
三、程序实现:
第一步,配置定时器的输入捕获(定时器5通道2):
void