STM32F103ZET6 GPIO常用庫函式

2021-10-02 10:23:03 字數 2338 閱讀 6837

標頭檔案:stm32f10x_gpio.h

原始檔:stm32f10x_gpio.c

rcc_apb2periphclockcmd

(rcc_apb2periph_gpiox,enable)

;

void

gpio_init

(gpio_typedef* gpiox, gpio_inittypedef* gpio_initstruct)

;

gpio_inittypedef  gpio_initstructure;

//定義gpio引數結構體

gpio_initstructure.gpio_pin = gpio_pin_5;

//選擇要配置的io口

gpio_initstructure.gpio_mode = gpio_mode_out_pp;

//推挽輸出

gpio_initstructure.gpio_speed = gpio_speed_50mhz;

//io口速度為50mhz

gpio_init

(gpiob,

&gpio_initstructure)

;//根據設定引數初始化gpiob.5

uint8_t  gpio_readinputdatabit

(gpio_typedef* gpiox, uint16_t gpio_pin)

;uint16_t gpio_readinputdata

(gpio_typedef* gpiox)

;

gpio_readinputdatabit

(gpioa, gpio_pin_5)

;//讀取pa^5的輸入電平

gpio_readinputdata

(gpioa)

;//讀取gpioa組中所有io口輸入電平

uint8_t gpio_readoutputdatabit

(gpio_typedef* gpiox, uint16_t gpio_pin)

;//讀取gpiox組下某個引腳電平

uint16_t gpio_readoutputdata

(gpio_typedef* gpiox)

;//讀取gpiox該組所有引腳輸出電平

gpio_readoutputdatabit

(gpioa, gpio_pin_5)

;//讀取gpioa.5的輸出電平

gpio_readoutputdata

(gpioa)

;//讀取gpioa組中所有io口輸出電平

void

gpio_setbits

(gpio_typedef* gpiox, uint16_t gpio_pin)

;//輸出置1

void

gpio_resetbits

(gpio_typedef* gpiox, uint16_t gpio_pin)

;//輸出置0

void

gpio_writebit

(gpio_typedef* gpiox, uint16_t gpio_pin, bitaction bitval)

;//不常用

void

gpio_write

(gpio_typedef* gpiox, uint16_t portval)

;//不常用

void gpio_setbits(gpio_typedef* gpiox, uint16_t gpio_pin);

設定某個io口輸出為高電平1。實際操作bsrr暫存器

void gpio_resetbits(gpio_typedef* gpiox, uint16_t gpio_pin);

設定某個io口輸出為低電平0。實際操作的brr暫存器。

void gpio_writebit(gpio_typedef* gpiox, uint16_t gpio_pin, bitaction bitval);

void gpio_write(gpio_typedef* gpiox, uint16_t portval);

這兩個函式不常用,也是用來設定io口輸出電平。

//實現兩個燈的交替閃爍

#include

"stm32f10x.h"

void

delay

(u32 count)

intmain

(void

)}

STM32F103ZET6學習總結

1.任何外設在使用之前,必須先使能相應的時鐘。2.使用不同外設時,gpio引腳應該如何配置?1 gpio mode ain 模擬輸入 2 gpio mode in floating 浮空輸入 3 gpio mode ipd 下拉輸入 4 gpio mode ipu 上拉輸入 5 gpio mode ...

STM32F103ZET6移植FreeRTOS過程

2.解壓 我們需要幾個檔案 1 在freertosv9.0.0 freertos source 下的所有c檔案 ps 並不是所有都一定要用,按需要取 2 在freertosv9.0.0 freertos source include整個資料夾 3 在freertosv9.0.0 freertos s...

STM32F103ZET6 電容觸控按鍵

開關閉合,電容充電,直至電容兩端電壓 v1 rc電路充放電公式 vt v0 v1 v0 1 exp t rc v0 為電容上的初始電壓值 v1 為電容最終可充到或放到的電壓值 vt 為t時刻電容上的電壓值。如果v0為0,也就是從0v開始充電。那麼公式簡化 vt v1 1 exp t rc 結論 同樣...