stm32學習筆記之按鍵驅動Led

2021-10-17 05:22:03 字數 2341 閱讀 7076

由於實驗與按鍵有關,既然有按鍵,那就必須要解釋下按鍵消抖。

原理:讀取按鍵電平(按下為1,鬆開為0)

當讀到1的時候(按鍵好像被按下了)

那麼我們延時10ms再讀

若按鍵讀到為1(說明按鍵真的被按下了)——執行操作

若按鍵讀到為0(說明這只是一次機械抖動,咱們不用理他!)

基於按鍵消抖原理編的按鍵掃瞄函式:

int key_scan()

elseif(

key1==0

)elseif(

key2==0

)}elseif(

key0==1

&&key0==1

&&key2==1

) flag =1;

return

0;

為了實現使用按鍵來驅動led,我們需要對按鍵和埠進行一些定義,如下:

ifndef _key_h

#define _key_h

#include "sys.h"

#define key0

gpio_readinputdatabit

(gpioe

, gpio_pin_9)

//定義pe9為key0

#define key1

gpio_readinputdatabit

(gpioe

, gpio_pin_8)

//定義pe8為key1

#define key2

gpio_readinputdatabit

(gpioe

, gpio_pin_7)

//定義pe7為key2

#endif

然後我們就可以通過按鍵來驅動埠啦,不過還需要進行乙個步驟,那就是對我們所需要的埠進行初始化(gpio配置)。

本實驗所需要的三個埠分別為pe7,pe8和pe9。所以我們開始配置;

//初始化pe7,8,9

void

key_init()

//主函式

#include "stm32f10x.h"

#include "delay.h"

#include "led.h"

#include "key.h"

int main

(void)}

}}

#include "key.h"

#include "stm32f10x.h"

#include "delay.h"

//初始化pe7,8,9

void

key_init()

//按鍵掃瞄函式

int key_scan()

elseif(

key1==0

)elseif(

key2==0

)}elseif(

key0==1

&&key0==1

&&key2==1

) flag =1;

return0;

}

#ifndef _key_h

#define _key_h

#include "sys.h"

#define key0

gpio_readinputdatabit

(gpioe

, gpio_pin_9)

//定義pe9為key0

#define key1

gpio_readinputdatabit

(gpioe

, gpio_pin_8)

//定義pe8為key1

#define key2

gpio_readinputdatabit

(gpioe

, gpio_pin_7)

//定義pe7為key2

void

key_init()

;int key_scan()

;#endif

本實驗我們要用到矩陣鍵盤和我們的主機板,我們用到的矩陣鍵盤有四行:r1~4,

和四列:c1~4。

由於我們這個實驗要求用到三個按鍵,所以我選擇了同一行的三個按鍵。

接線方式是先把想用的行接地,然後再把想用的列的三條線分別接到pe7,pe8和pe9上。

接線完畢,圖如下:

所有準備工作都做完啦!接下來我們該進行按鍵驅動啦!

按鍵驅動小實驗

stm32按鍵學習

wk up接vcc3.3,是高電平,當wk up 1的時候處於開啟狀態 key0和key1都接在gnd上面,是處在低電平,當key0 和 key1 0時處於開啟狀態。wk up接pa0 key0接pc5 key1接pa15。mode 0,不支援連續按 1,支援連續按 key up 0是按下去 key...

Stm32學習之按鍵輸入

一 首先清楚硬體連線 不同stm32版本存在一定的區別,一下都是根據正點原子的stm32f1為例。二 按鍵輸入實驗的程式步驟 1.使能按鍵對應io口始終,呼叫函式 rcc apb2periphclockcmd 2.初始化io模式 上拉 下拉輸入。呼叫函式 gpio init 3.掃瞄io口電平 庫函...

stm32之按鍵實驗

前言 這個實驗比較簡單,就是對io口的配置。up鍵用來開啟led燈,down鍵用於關閉led燈,left鍵用於開啟蜂鳴器,right用於關閉蜂鳴器。1.初始化用到的io口 void key init 注意 這裡按鍵的io口為輸入功能,所以模式為輸入模式。另外上啦和下拉根據電路圖而定。還有,因為為輸入...