手把手入門stm32f4 (1)

漂亮的賈先生發表於2020-12-18

GPIO

1. 一共有7組IO,每組有16個口 即一共有16*7=112個口。

2.每個口基本上都可以觸發中斷(區別於51,51只有P3^2, P3^2).

3.共有8中輸入輸出模式

(1)浮空輸入——直接進入暫存器,mcu直接讀取。
(2)上拉輸入——如果沒有輸入訊號或者懸空,預設為高。
(3)下拉輸入——如果沒有輸入訊號或者懸空,預設為低。
(4)模擬輸入——在adc採集電壓通道時,不通過施密斯觸發器,不能在輸入暫存器中讀取到值,直接進入到adc模組。
(5)推輓輸出—PMOS管和NMOS管都起作用,輸出為高電平時,NMOS管關閉,PMOS管開啟,輸出為高。輸出為低電平時,NMOS管開啟,PMOS管關閉,輸出為低。
(6)開漏輸出——PMOS管關閉,NMPS管開啟。輸出為低,NMOS管開啟,輸出為低 。輸出為高時,NMOS管關閉,PMOS管關閉,不會輸出,輸出只取決於外部的上拉或者下拉。
(7)推輓複用輸出——輸出訊號來源為其他外設,其他同上。
(8)開漏複用輸出——輸出訊號來源為其他外設,其他同上。

初始化GPIO口流程

		GPIO_InitTypeDef LED_GPIO;           //gpio結構體
		RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOE,ENABLE);  //使能時鐘
		LED_GPIO.GPIO_Mode=GPIO_Mode_OUT;       //選擇輸出模式    
		LED_GPIO.GPIO_OType=GPIO_OType_PP;       //推輓
		LED_GPIO.GPIO_Pin=GPIO_Pin_7;            //選擇7口
		LED_GPIO.GPIO_PuPd=GPIO_PuPd_UP;          //上拉
		LED_GPIO.GPIO_Speed=GPIO_Medium_Speed;    //中速
		GPIO_Init(GPIOE,&LED_GPIO);                //gpio口初始化

相關文章