用暫存器點亮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等的巨集...