STM32輸入捕獲之觸控按鍵開發

2021-07-24 10:35:27 字數 618 閱讀 6816

1.觸控按鍵的原理

觸控按鍵大多根據手與板子之間的形成的電容,利用電容的充放電時間來判斷按鍵是否按下。

當我們做pcb時,線與線之間有節電容,我們留一塊覆銅區域用作我們的觸控按鍵,當我們手沒有接觸我們的覆銅區域時覆銅區域只與板子的線之間有電容(線電容),電容容量小充電快,我們手接觸覆銅區域時,覆銅區域的電容有線電容和手與銅塊形成的電容,電容容量相對於沒有接觸銅塊的電容大,充電時間長如圖所示,a是沒有手按下的電容充電時間,b是有手按下的充電時間。

總結:我們只需要對我們的電容進行放電充電,檢測充電的時間及可以檢測手是否觸控的功能。

方法:我們使用 pa1(tim2_ch2)來檢測 tpad 是否有觸控,在每次檢測之前,我們先配置pa1 為推挽輸出,將電容 cs(或 cs+cx)放電,然後配置 pa1 為浮空輸入,利用外部上拉電阻給電容 cs(cs+cx)充電,同時開啟 tim2_ch2 的輸入捕獲,檢測上公升沿,當檢測到上公升沿的時候,就認為電容充電完成了,完成一次捕獲檢測。在 mcu 每次復位重啟的時候, 我們執行一次捕獲檢測 (可以認為沒觸控) , 記錄此時的值,作為判斷的依據。在後續的捕獲檢測,我們就通過與記錄的資料對比即可以判斷是否有觸控發生!

圖一圖一為我的開發板的接線圖(正點原子的戰艦)

下面 是我的**比較精簡 

stm32 電容觸控按鍵

電容觸控按鍵原理 使用的是檢測電容充放電時間的方法來判斷是否有觸控,圖中 r 是外接的電容充電電阻,cs 是沒有觸控按下時 tpad 與 pcb 之間的雜散電容。而 cx 則是有手指按下的時候,手指與 tpad 之間形成的電容。圖中的開關是電容放電開關 由實際使用時,由 stm32f4 的io 代替...

stm32 輸入捕獲

根據定時器的計數頻率,我們就可以算出t1 t2的時間,從而得到高電平脈寬 計算公式 n arr ccrx2首先設定定時器通道為上公升沿捕獲,這樣在t1時刻,就會捕獲到當前的cnt值,然後立即清零cnt,並設定定時器通道為下降沿捕獲,這樣到t2時刻,又會發生捕獲事件,得到此時的cnt值,記為ccrx2...

stm32 輸入捕獲

stm32f1 除了基本定時器 tim6 和 tim7,其他定時器都具有輸入捕 獲功能。輸入捕獲可以對輸入的訊號的上公升沿,下降沿或者雙邊沿進行捕獲,通 常用於測量輸入訊號的脈寬 測量 pwm 輸入訊號的頻率及占空比 原理 輸入捕獲模式下,u8 tim5 ch1 capture sta 輸入捕獲狀態...