配置相關函式
1.void gpio_init (gpio_typedef* gpiox,gpio_inittypedef* gpio_initstruct)
函式解釋:gpio的初始化函式,該函式的作用是對io進行初始化。
引數:(1)gpiox,gpio的分組,如 gpioa,gpiob,gpioc等的巨集定義。
gpio_pin:指定具體的io腳,如gpio_pin_0,gpio_pin_1這樣的巨集定義。
gpio_mode:指定gpio的模式,有八種模式:
gpio_mode_ain
gpio_mode_in_floating
gpio_mode_ipd
gpio_mode_ipu
gpio_mode_out_od
gpio_mode_out_pp
gpio_mode_af_od
gpio_mode_af_pp
gpio_speed:指定io最快翻轉速度,也就是當使用io產生頻率的最大速度。有四種模式:
gpio_speed_10mhz,
gpio_speed_2mhz
gpio_speed_50mhz
gpio的讀寫函式
1.uint8_t gpio_readinputdatabit (gpio_typedef* gpiox , uint16_t gpio_pin)
函式解釋:讀取io輸入管腳的值
引數:(1)gpiox,gpio的分組,如 gpioa,gpiob,gpioc等的巨集定義。
(2)gpio_pin:指定具體的io腳,如gpio_pin_0,gpio_pin_1這樣的巨集定義。
返回值:輸入管腳的值 bit_set(高電平),bit_reset(低電平)
2.uint16_t gpio_readinputdata (gpio_typedef* gpiox )
函式解釋:讀取輸入io資料,該函式用於讀取乙個io分組的所有資料
引數:gpiox,gpio的分組,如 gpioa,gpiob,gpioc等的巨集定義。
返回值:乙個io埠的所有資料(輸入狀態)
3.uint8_t gpio_readoutputdatabit (gpio_typedef* gpiox , uint16_t gpio_pin)
函式解釋:讀取io輸出管腳的值
引數:(1)gpiox,gpio的分組,如 gpioa,gpiob,gpioc等的巨集定義。
(2) gpio_pin:指定具體的io腳,如gpio_pin_0,gpio_pin_1這樣的巨集定義。
返回值:輸出管腳的值 bit_set(高電平),bit_reset(低電平)
4.uint16_t gpio_readoutputdata (gpio_typedef* gpiox )
函式解釋:讀取輸出io資料,該函式用於讀取乙個io分組的所有資料
引數:gpiox,gpio的分組,如 gpioa,gpiob,gpioc等的巨集定義。
返回值:乙個io埠的所有資料(輸出狀態)
5.void gpio_setbits(gpio_typedef* gpiox,uint16_t gpio_pin)
函式解釋:對io管腳進行置位(輸出高電平)。這個函式使用gpiox_bsrr暫存器來實現原子讀或者修改操作。在這種情況下,在讀和修改訪問時發生乙個irq中斷是沒有危險的。
引數:(1)gpiox,gpio的分組,如 gpioa,gpiob,gpioc等的巨集定義。
(2)gpio_pin:指定具體的io腳,如gpio_pin_0,gpio_pin_1這樣的巨集定義。
6.void gpio_resetbits(gpio_typedef* gpiox,uint16_t gpio_pin)
函式解釋:對io管腳進行復位(輸出低電平)。這個函式使用gpiox_bsrr暫存器來實現原子讀或者修改操作。在這種情況下,在讀和修改訪問時發生乙個irq中斷是沒有危險的。
引數:(1)gpiox,gpio的分組,如 gpioa,gpiob,gpioc等的巨集定義。
(2)gpio_pin:指定具體的io腳,如gpio_pin_0,gpio_pin_1這樣的巨集定義。
7.void gpio_writebit(gpio_typedef* gpiox,uint16_t gpio_pin,bitactionbitval)
函式解釋:對某一位進行寫入操作。
引數:(1)gpiox,gpio的分組,如 gpioa,gpiob,gpioc等的巨集定義。
(2)gpio_pin:指定具體的io腳,如gpio_pin_0,gpio_pin_1這樣的巨集定義。
(3)bitval:寫入高電平或者低電平(bit_reset:寫入低電平 bit_set:寫入高電平)
8.void gpio_write(gpio_typedef* gpiox,uint16_t portval)
函式解釋:對gpio埠進行寫入操作,適用於對統一埠的多個管腳的寫入。
引數:(1)gpiox,gpio的分組,如 gpioa,gpiob,gpioc等的巨集定義。
(2)bitval:寫入高電平或者低電平(bit_reset:寫入低電平 bit_set:寫入高電平)
9.void gpio_togglebits(gpio_typedef* gpiox,uint16_t gpio_pin)
函式解釋:翻轉指定的gpio口,如果當前io是高電平,則變為低電平。如果當前io是低電平,則變為高電平。
引數:(1)gpiox,gpio的分組,如 gpioa,gpiob,gpioc等的巨集定義。
(2)gpio_pin:指定具體的io腳,如gpio_pin_0,gpio_pin_1這樣的巨集定義。
STM32總結之GPIO程式設計過程
用暫存器點亮led的過程 1 通過原理圖找到要點亮的led燈對應的gpio口 2.通過stm32手冊找到要操作的暫存器,找到這個gpio的基位址,基位址 位址偏移 目標暫存器的位址 3.編碼 1.開啟對應的gpio的時鐘。2.通過操作crl暫存器將對應的gpio口設定為推挽輸出模式,並設定一 個翻轉...
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之標準庫程式設計
gpio typedef和afio typedef,在檔案 stm32f10x map.h 中定義如下 typedef struct gpio typedef typedef struct afio typedef gpio inittypedef定義於檔案 stm32f10x gpio.h typ...