Stm32學習之按鍵輸入

2021-10-08 00:00:48 字數 1639 閱讀 2540

** 一、首先清楚硬體連線**

不同stm32版本存在一定的區別,一下都是根據正點原子的stm32f1為例。

二、按鍵輸入實驗的程式步驟

1.使能按鍵對應io口始終,呼叫函式:rcc_apb2periphclockcmd();

2.初始化io模式:上拉/下拉輸入。呼叫函式:gpio_init();

3.掃瞄io口電平(庫函式/暫存器/位操作)

按鍵掃瞄(支援連續按)的一般思路:

u8 key_scan

(void

)return 無效值;

}}

按鍵掃瞄(不支援連續按)的一般思路

u8 key_scan

(void

)else

if(key沒有按下)

key_up=1;

return 沒有按下;

}}

三、**編寫

auto.c

#include

"auto.h"

#include

"sys.h"

#include

"delay.h"

void

auto_init()

u8 key_scan

(u8 mode)

else

if(key0==

1&& key1==

1&&wk_up==0)

key_up=1;

return0;

}

auto.h

#ifndef  auto_c

#define auto_c

#include

"sys.h"

#define key0 gpio_readinputdatabit(gpioe,gpio_pin_4)

#define key1 gpio_readinputdatabit(gpioe,gpio_pin_3)

#define wk_up gpio_readinputdatabit(gpioa,gpio_pin_0)

#define key0_pres 1

#define key1_pres 2

#define wkup_pres 3

void

auto_init

(void);

u8 key_scan

(u8 mode)

;#endif

main.c

#include

"stm32f10x.h"

#include

"led.h"

#include

"delay.h"

#include

"auto.h"

#include

"sys.h"

intmain()

}else

delay_ms(10

);}}

stm32按鍵輸入

對於上乙個實驗流水燈來說,這一次的實驗是獲取輸入的乙個小demo。在課堂上,看老師除錯的時候,只要有輸入則輸入暫存器idr的值就會改變,所以想要獲得輸入只需要迴圈去獲取idr的值即可。在stm32的庫中有乙個讀取輸入資訊的函式 uint8 t gpio readinputdatabit gpio t...

STM32按鍵輸入

這一節通過按鍵輸入的實驗,完成對io口配置輸入的學習,同時學習如何通過軟體去抖動。這一節最終可以實現利用wk up按鍵控制led亮滅的效果。與上一節點亮led相類似,這一節也需要在hardware資料夾內新建檔案key.h和key.c。同時將相應的檔案加入到工程中。檢視原理圖,獲取wk up按鍵的相...

STM32學習記錄 按鍵輸入

程式設計方式 庫函式 目標 按下key1後led燈狀態反轉 按下key2後蜂鳴器與led狀態反轉 按下key3後蜂鳴器狀態反轉 key1 key2低電平有效 key3高電平有效 可設定乙個靜態區域性變數static 變數值在第一次初始化一次,後面的值會存在靜態儲存區,值不會被釋放 來儲存按鍵狀態,以...