參考文章:「stm32自學筆記」
stm32可以提供很多gpio,一般分別在5個埠(port)(gpioa-gpioe),每個埠有16個gpio,最大耐壓值為5v。每個埠有32為寬頻的設定暫存器,一共64位,每個gpio占用4位配置位。其中兩位設定gpio的方向,另外兩位設定gpio的工作模式。
1、gpio_pin定義
gpio_pin引數
描述gpio_pin_none
無引腳被選中
gpio_pin_0~15
選中引腳1~15(其中乙個)
gpio_pin_all
選中全部引腳
2、gpio_mode定義
gpio_mode引數
描述gpio_mode_ain
模擬輸入
gpio_mode_floating
浮空輸入
gpio_mode_ipd
下拉輸入
gpio_mode_ipu
上拉輸入
gpio_mode_out_od
開漏輸出
gpio_mode_out_pp
推挽輸出
gpio_mode_af_od
復用開漏輸出
gpio_mode_af_pp
復用推挽輸出
3、gpio_speed定義
gpio_speed引數
描述gpio_speed_2mhz
最高輸出頻率2mhz
gpio_speed_10mhz
最高輸出頻率10mhz
gpio_speed_50mhz
最高輸出頻率50mhz
關於引數的一些說明:
上下拉輸入:即在將輸入值在沒有低/高平訊號給到時,穩定在高/低平模擬輸入:用adc時,將模擬訊號送個mcu
浮空輸入:一般用於i2c與uasrt的輸入管腳
開漏輸出:只能輸出低電平
推挽輸出:既可以輸出高電平也可以輸出低電平
gpio_speed:字面意思就是變換電平所需的時間;在gpio設定成輸入模式時,不需要設定翻轉速度
// gpio 說明
/*設為預設狀態*/
void
gpio_deinit
(gpio_typedef* gpiox)
;/*gpio_init(gpio_typedef * gpiox,gpio_type_inittypedef * gpio_initstruct)*/
gpio_init
(gpioa,
&gpio_initstructure)
;void
gpio_structinit
(gpio_inittypedef* gpio_initstruct)
/*埠置位*/
void
gpio_setbits
(gpio_typedef* gpiox, uint16_t gpio_pin)
;#define gpio_pin_0 ((uint16_t)0x0001)
/*!< pin 0 selected */
#define gpio_pin_1 ((uint16_t)0x0002)
/*!< pin 1 selected */
#define gpio_pin_2 ((uint16_t)0x0004)
/*!< pin 2 selected */
#define gpio_pin_3 ((uint16_t)0x0008)
/*!< pin 3 selected */
#define gpio_pin_4 ((uint16_t)0x0010)
/*!< pin 4 selected */
#define gpio_pin_5 ((uint16_t)0x0020)
/*!< pin 5 selected */
#define gpio_pin_6 ((uint16_t)0x0040)
/*!< pin 6 selected */
#define gpio_pin_7 ((uint16_t)0x0080)
/*!< pin 7 selected */
#define gpio_pin_8 ((uint16_t)0x0100)
/*!< pin 8 selected */
#define gpio_pin_9 ((uint16_t)0x0200)
/*!< pin 9 selected */
#define gpio_pin_10 ((uint16_t)0x0400)
/*!< pin 10 selected */
#define gpio_pin_11 ((uint16_t)0x0800)
/*!< pin 11 selected */
#define gpio_pin_12 ((uint16_t)0x1000)
/*!< pin 12 selected */
#define gpio_pin_13 ((uint16_t)0x2000)
/*!< pin 13 selected */
#define gpio_pin_14 ((uint16_t)0x4000)
/*!< pin 14 selected */
#define gpio_pin_15 ((uint16_t)0x8000)
/*!< pin 15 selected */
/*清楚埠資料,即置0*/
void
gpio_resetbits
(gpio_typedef* gpiox, uint16_t gpio_pin)
;
STM32f1學習筆記 USART
typedef struct usart inittypedef usart stopbits usart stopbits引數 描述usart stopbits 1 在幀尾傳輸1個停止位 usart stopbits 0.5 在幀尾傳輸0.5個停止位 usart stopbits 2 在幀尾傳輸2...
STM32F4與STM32F1的區別
作為cortex m3市場的最大佔有者,st公司在2011年又推出基於cortex m4核心的stm32f4系列產品,相對與stm32f1 f2等cortex m3產品,stm32f4最大的優勢,就是新增了硬體fpu單元以及dsp指令,同時,stm32f4的主頻也提高了很多,達到168mhz 可獲得...
STM32F1外部中斷例項
使用外部中斷的基本步驟如下 1.設定好相應的時鐘 2.設定相應的中斷 3.io口初始化 4.把相應的io口設定為中斷線路 要在設定外部中斷之前 並初始化 5.在選擇的中斷通道的響應函式中中斷函式。1 開啟時鐘 void rcc config void 設定相應的時鐘所需要的rcc函式在stm32f1...