嵌入式单片机高级篇(一)Stm32F103电容触摸按键

Stm32F103电容触摸按键

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

void
经验分享 程序员 微信小程序 职场和发展