STM32 HAL學習筆記 2 按鍵檢測

2021-10-07 12:50:58 字數 2246 閱讀 2975

io口狀態檢測

gpio_pinstate hal_gpio_readpin (gpio_typedef * gpiox, uint16_t gpio_pin)

gpiox:指a-h等外設

gpio_init:指向gpio_inittypedef結構的指標

io口狀態反轉

void hal_gpio_togglepin (gpio_typedef * gpiox, uint16_t gpio_pin)

gpiox:指a-h等外設

gpio_init:指向gpio_inittypedef結構的指標

io口狀態鎖定

hal_statustypedef hal_gpio_lockpin (gpio_typedef * gpiox, uint16_t gpio_pin)

gpiox:指a-h等外設

gpio_init:指向gpio_inittypedef結構的指標

按鍵key_0按下時ds0和ds1狀態取反,鬆開時恢復

io口配置

#define key_0_pin gpio_pin_4

#define key_0_gpio_port gpioe

#define led1_pin gpio_pin_5

#define led1_gpio_port gpioe

#define led0_pin gpio_pin_5

#define led0_gpio_port gpiob

static

void

mx_gpio_init

(void);

/* gpio ports clock enable */

__hal_rcc_gpioe_clk_enable()

;__hal_rcc_gpioa_clk_enable()

;__hal_rcc_gpiob_clk_enable()

;/*configure gpio pin output level */

hal_gpio_writepin

(led1_gpio_port, led1_pin, gpio_pin_reset)

;/*configure gpio pin output level */

hal_gpio_writepin

(led0_gpio_port, led0_pin, gpio_pin_reset)

;/*configure gpio pin : key_0_pin */

gpio_initstruct.pin = key_0_pin;

gpio_initstruct.mode = gpio_mode_input;

gpio_initstruct.pull = gpio_pullup;

hal_gpio_init

(key_0_gpio_port,

&gpio_initstruct)

;/*configure gpio pin : led1_pin */

gpio_initstruct.pin = led1_pin;

gpio_initstruct.mode = gpio_mode_output_pp;

gpio_initstruct.pull = gpio_nopull;

gpio_initstruct.speed = gpio_speed_freq_low;

hal_gpio_init

(led1_gpio_port,

&gpio_initstruct)

;/*configure gpio pin : led0_pin */

gpio_initstruct.pin = led0_pin;

gpio_initstruct.mode = gpio_mode_output_pp;

gpio_initstruct.pull = gpio_nopull;

gpio_initstruct.speed = gpio_speed_freq_low;

hal_gpio_init

(led0_gpio_port,

&gpio_initstruct)

;}

main函式

int

main

(void

)/* user code begin 3 */

}/* user code end 3 */

}

下節加上時鐘配置

STM32 HAL庫學習筆記

1 系統時鐘 一般用stm32cube生成,使用者只需要會用stm32cube就行。2 gpio輸出void led gpio config void 3 gpio輸入void key gpio config void 4 外部中斷void exti key config void void ext...

STM32 HAL庫學習筆記

1 普通函式與 函式的區別 對普通函式的呼叫 呼叫程式發出對普通函式的呼叫後,程式執行立即轉向被呼叫函式執行,直到被呼叫函式執行完畢後,再返 用程式繼續執行。從發出呼叫的程式的角度看,這個過程為 呼叫 等待被呼叫函式執行完畢 繼續執行 對 函式呼叫 呼叫程式發出對 函式的呼叫後,不等函式執行完畢,立...

stm32HAL庫學習 UART學習筆記

一 串列埠輸出列印重定向printf,如下 int fputc int ch,file f hal uart transmit huart1,temp,1,1000 return ch int fgetc file f 用作程式除錯輸出時,可以使用一組巨集定義,方便開發完成後關閉printf 除錯日...