2 KEY LED 通過按鍵來點亮小燈

2021-09-24 19:34:41 字數 2132 閱讀 5212

實驗板上有三個按鍵,和三個led燈。當燒入程式後,三個燈都是關斷狀態。

如果按下其中乙個按鍵,則對應乙個led燈變亮。當鬆開時,對應的led燈關滅。

硬體圖如下:

本人使用cubemax配置rcc和引腳。

通過本例程可以來學習標頭檔案的應用,以及列舉的應用。

在gpio.h中新增資料型別,led_typedef,keystate_typedef

typedef enum

led_typedef;

typedef enum

keystate_typedef;

2.在gpio.h中新增函式宣告,這些函式會在其他.c檔案中被呼叫。

void bsp_led_on(led_typedef led);

void bsp_led_off(led_typedef led);

void bsp_led_toggle(led_typedef led);

keystate_typedef bsp_key_getstate(void);

在gpio.c中宣告兩個陣列

gpio_typedef* gpio_port = ;

const uint16_t gpio_pin = ;

4.在gpio.c中定義函式

keystate_typedef bsp_key_getstate(void) 

else if(hal_gpio_readpin(key1_gpio_port,key1_pin) == gpio_pin_reset)

else if(hal_gpio_readpin(wk_up_gpio_port,wk_up_pin) == gpio_pin_set)

else

}/**

* @brief turns selected led on.

* @param led: led to be set on

* this parameter can be one of the following values:

* @arg led0

* @arg led1

* @arg led2

* @retval none

*/void bsp_led_on(led_typedef led)

/** * @brief turns selected led off.

* @param led: led to be set off

* this parameter can be one of the following values:

* @arg led0

* @arg led1

* @arg led2

* @retval none

*/void bsp_led_off(led_typedef led)

/** * @brief toggles the selected led.

* @param led: led to be toggled

* this parameter can be one of the following values:

* @arg led0

* @arg led1

* @arg led2

* @retval none

*/void bsp_led_toggle(led_typedef led)

在此.c檔案中,還有引腳初始化的配置,是在cubemax中設定的。按鍵相連線的引腳設定為輸入模式;led相連線的引腳設定為輸出模式,推挽輸出,無需上拉和下拉。

5.main.c

switch(bsp_key_getstate())

獨立按鍵的使用 2

上一節的按鍵的使用中,效果是按下鍵亮,彈起後又滅,無法保持狀態,下面的實現按下彈起後,實現一次切換 include sbit led p0 2 控制引腳 sbit key p0 0 按鍵void main void 測試後發現,按鍵按下彈起的時間間隔不同,效果也不同,有時會出現按下彈起後狀態並沒有改...

android 虛擬按鍵是通過哪種機制上報的?

1.在normal mode下,tp button也是和其它觸控事件一樣,以座標形式的input event進行上報。在初始化時會通過tpd button setting 函式根據定義在tpd custom h檔案中的配置資訊將虛擬按鍵的座標資訊寫在 sys board properties vir...

android 虛擬按鍵是通過哪種機制上報的?

1.在normal mode下,tp button也是和其他觸控事件一樣,以座標形式的input event進行上報。在初始化時會通過tpd button setting 函式依據定義在tpd custom 件裡的配置資訊將虛擬按鍵的座標資訊寫在 sys board properties virtu...