stm32學習筆記(二)按鍵實驗

2021-08-06 03:48:56 字數 1394 閱讀 6520

//本程式只供學習使用,未經作者許可,不得用於其它任何用途

//alientek mini stm32開發板

//按鍵輸入 驅動**

//正點原子@alientek

//技術論壇:www.openedv.com

//修改日期:2014/3/06

//版本:v1.0

//

//按鍵初始化函式

//pa15和pc5 設定成輸入

void key_init(void)

//按鍵處理函式

//返回按鍵值

//mode:0,不支援連續按;1,支援連續按;

//返回值:

//0,沒有任何按鍵按下

//key0_pres,key0按下

//key1_pres,key1按下

//wkup_pres,wk_up按下

//注意此函式有響應優先順序,key0>key1>wk_up!!

u8 key_scan(u8 mode)

else if(key0==1&&key1==1&&wk_up==0)key_up=1;

return 0;// 無按鍵按下

}key0 對應pc5  key1 對應pa15   都設定為預設上拉

pa0設定為預設下拉

gpio_readinputdatabit(gpio_typedef* gpiox, uint16_t gpio_pin)讀的是gpiox_idr,讀的是當io口設定為輸入狀態時候的io口值 

gpio_readoutputdatabit(gpio_typedef* gpiox, uint16_t gpio_pin)讀的是gpiox_odr,讀的是當io口設定為輸出狀態時候的io口值 

gpio_readinputdatabit函式,引腳設定為預設上拉,無按鍵返回值為1,有按鍵返回值為零

引腳設定為預設下拉,無按鍵返回值0,有按鍵返回值為1。

#include "led.h"

#include "delay.h"

#include "sys.h"

#include "key.h"

//alientek mini stm32開發板範例**2

//按鍵輸入實驗

//技術支援:www.openedv.com

//廣州市星翼電子科技****

int main(void)

}

}

STM32按鍵實驗

用systick做時間20ms的判斷,用狀態機概念的按鍵掃瞄三狀態去除抖動,狀態0 有按鍵按下,狀態1 有按鍵按下,判斷具體按鍵,狀態3 判斷按鍵抬起,沒20ms進行狀態的判斷。流程圖 systick程式 不包括初始化程式,初始化程式在delay.c中 systick load 20 fac ms ...

stm32之按鍵實驗

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

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...