//本程式只供學習使用,未經作者許可,不得用於其它任何用途
//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...