1.硬體接法
4個按鍵:wk_up 控制蜂鳴器,key0 同時控制ds0和ds1;key1 控制ds1;key2控制ds0,
wk_up 外部上拉,晶元內部需要設定為下拉輸入;key0-key2 外部下拉,晶元內部需要設定為上拉輸入。
2.標頭檔案編寫
本次實驗涉及到led 蜂鳴器 按鍵,其中led和蜂鳴器是輸出,按鍵是輸入。
led標頭檔案編寫:
2-1.1 先來個條件編譯,不要問為什麼要這樣寫,問就是不知道。標準格式:
#ifndef __***_h
#define __***_h
//其中 *** 表示的是需要初始化的名稱,比如 led.h 檔案就是初始化led,所以對應的*** 應為 led
然後設定i/o 的值,一般的格式為:i/o口的腳位和模式;比如這個實驗中的控制led燈i/o 的值的程式是:
#define led0 pbout(5)
#define led1 peout(5)
2-2:初始化輸入/輸出i/o口:
2.2-1:呼叫對應的i/o口初始化檔案;
2-2-2:定義乙個型別,並使能對應的gpio,設定pin腳,模式,並初始化。
2-2-3:按鍵輸入處理:
//mode:0 不支援連續按鍵;1 支援連續按鍵
//0,沒有任何按鍵按下;1.key0按下;2.key1按下;3.key2按下;4.wk_up按下
//函式優先順序:key0>key1>key2>wk_up
u8 key_scan
(u8 mode)
//掃瞄i/o口是否有按鍵按下
else
if(key0 ==
1&&key1 ==
1&&key2 ==
1&&wk_up ==
0)key_up =1;
return0;
//無按鍵按下
}
2-2-4:按鍵初始化i/o:
#ifndef __key_h
#define __key_h
#include
"sys.h"
#define key0 gpio_readinputdatabit(gpioe,gpio_pin_4)
//讀取按鍵0
#define key1 gpio_readinputdatabit(gpioe,gpio_pin_3)
//讀取按鍵1
#define key2 gpio_readinputdatabit(gpioe,gpio_pin_2)
//讀取按鍵2
#define wk_up gpio_readinputdatabit(gpioa,gpio_pin_0)
//讀取按鍵3
#define key0_pres 1
//按鍵k0按下
#define key1_pres 2
//按鍵k1按下
#define key2_pres 3
//按鍵k2按下
#define wkup_pres 4
//按鍵wkup 按下
void
key_init
(void);
u8 key_scan
(u8)
;#endif
其中按鍵讀取可以寫成:
#define key0 pein(4)
#define key1 pein(3)
#define key2 pein(2)
#define wk_up pain(0)
3.主函式編寫3-1:呼叫延時函式,led函式,蜂鳴器函式,按鍵輸入函式:
#include
"sys.h"
#include
"delay.h"
#include
"led.h"
#include
"beep.h"
#include
"key.h"
3-2:i/o口初始化:
vu8 key =0;
delay_init()
;//延時函式初始化
led_init()
;//led埠初始化
key_init()
;//初始化與按鍵連線的硬體介面
beep_init()
;//初始化蜂鳴器
led0 =0;
//先點亮led0
3-3;按鍵控制:
while(1
)}else
delay_ms(10);}
以上 即為按鍵輸入控制的**。 實驗3 按鍵輸入實驗
一 原理圖 二 庫函式 1 讀取io的狀態 uint8 t gpio readinputdatabit gpio typedef gpiox,uint16 t gpio pin 引數 gpio pin gpio pin x x 0 15 返回值 讀取到的狀態 0表示按鍵按下 1表示按鍵沒有按下。三 ...
按鍵實驗 GPIO輸入
1 參考資料 stm32f1開發指南 庫函式版本 第8章 按鍵輸入實驗 stm32中文參考手冊v10 第8章通用和復用功能io gpio和afio 2 硬體連線 key up pa0 key0 pe4 key1 pe3 key2 pe2 3 gpio輸入操作說明 讀取io口輸入電平呼叫庫函式為 ui...
20170725 按鍵輸入實驗
1 概念 將乙個不確定的訊號,通過乙個電阻與電源vcc相連,固定在高電平 2 上拉是對器件注入電流 灌電流 3 當乙個接有上拉電阻的io埠設定為輸入狀態時,它的常態為高電平 1 概念 將乙個不確定的訊號,通過乙個電阻與地gnd相連,固定在低電平 2 下拉是從器件輸出電流 拉電流 3 當乙個接有下拉電...