STM32總結之GPIO程式設計過程

2021-09-23 20:45:54 字數 1013 閱讀 7938

用暫存器點亮led的過程

1:通過原理圖找到要點亮的led燈對應的gpio口

2.通過stm32手冊找到要操作的暫存器,找到這個gpio的基位址,

基位址+位址偏移 = 目標暫存器的位址

3.編碼

1.開啟對應的gpio的時鐘。

2.通過操作crl暫存器將對應的gpio口設定為推挽輸出模式,並設定一    個翻轉速度

3.通過操作odr暫存器,將電平置高或置低。

按鍵操作過程

1.通過原理圖找到要操作的按鍵對應的gpio

2.通過stm32手冊找到要操作的暫存器,找到這個gpio的基位址

基位址+位址偏移 = 目標暫存器的位址

3.編碼

1.開啟對應的gpio的時鐘。

2.通過操作crl暫存器將對應的gpio口設定為浮空輸入模式.

3.通過讀取idr暫存器來獲取對應gpio口的高低電平狀態。

用韌體庫點亮led的過程(以pb0為例)

1.定義乙個gpio結構體(gpio_inittypedef)型別的變數

gpio_inittypedef gpiob_pin0;    

2.開啟gpio的時鐘

rcc_apb2periphclockcmd(rcc_apb2periph_gpiob, enable);

3.將gpio結構體變數的成員進行賦值:埠、模式、翻轉速度(定義的內容位於gpio.**件)

gpiob_pin0.gpio_pin = gpio_pin_0;    

gpiob_pin0.gpio_mode = gpio_mode_out_pp;   

gpiob_pin0.gpio_speed = gpio_speed_50mhz; 

4.gpio初始化

gpio_init(gpiob, &gpiob_pin0);

5.將相應的引腳置高、置低

gpio_resetbits(gpiob, gpio_pin_0);

gpio_setbits(gpiob, gpio_pin_0);

stm32的GPIO之標準庫程式設計

gpio typedef和afio typedef,在檔案 stm32f10x map.h 中定義如下 typedef struct gpio typedef typedef struct afio typedef gpio inittypedef定義於檔案 stm32f10x gpio.h typ...

STM32的GPIO開發總結

gpio開發總結 gpio模式 a 浮空輸入 in floating b 帶上拉輸入 ipu in push up c 帶下拉輸入 ipd in push down d 模擬輸入 ain anolog in e 開漏輸出 out pd od 代表開漏,既open drain,oc代表開集,open ...

STM32總結之GPIO 常用庫函式

配置相關函式 1.void gpio init gpio typedef gpiox,gpio inittypedef gpio initstruct 函式解釋 gpio的初始化函式,該函式的作用是對io進行初始化。引數 1 gpiox,gpio的分組,如 gpioa,gpiob,gpioc等的巨集...