STM32 IO口的8中配置方式解讀(推挽輸出、開漏輸出、復用開漏輸出、復用推挽輸出以及上拉輸入、下拉輸入、浮空輸入、模擬)
STM32 IO口的8中配置方式:
(1)GPIO_Mode_AIN 模擬輸入
(2)GPIO_Mode_IN_FLOATING 浮空輸入
(3)GPIO_Mode_IPD 下拉輸入
(4)GPIO_Mode_IPU 上拉輸入
(5)GPIO_Mode_Out_OD 開漏輸出
(6)GPIO_Mode_Out_PP 推挽輸出
(7)GPIO_Mode_AF_OD 復用開漏輸出
(8)GPIO_Mode_AF_PP 復用推挽輸出
I/O口的輸出模式下。有3種輸出速度可選(2MHz、10MHz和50MHz),這個速度是指I/O口驅動電路的響應速度而不是輸出信號的速度,輸出信號的速度與程序有關(芯片內部在I/O口 的輸出部分安排了多個響應速度不同的輸出驅動電路,用戶能夠依據自己的須要選擇合適的驅動電路)。通過選擇速度來選擇不同的輸出驅動模塊。達到最佳的噪聲 控制和減少功耗的目的。
高頻的驅動電路。噪聲也高,當不須要高的輸出頻率時,請選用低頻驅動電路,這樣非常有利于提高系統的EMI性能。
當然假設要輸出較高頻率的信號,但卻選用了較低頻率的驅動模塊。非常可能會得到失真的輸出信號。
關鍵是GPIO的引腳速度跟應用匹配(推薦10倍以上?)比方:
1 、對于串口,假如最大波特率僅僅需115.2k,那么用2M的GPIO的引腳速度就夠了,既省電也噪聲小。
2 、對于I2C接口。假如使用400k波特率,若想把余量留大些,那么用2M的GPIO的引腳速度也許不夠,這時能夠選用10M的GPIO引腳速度。
3、 對于SPI接口,假如使用18M或9M波特率,用10M的GPIO的引腳速度顯然不夠了。須要選用50M的GPIO的引腳速度。
4、 GPIO口設為輸入時。輸出驅動電路與port是斷開。所以輸出速度配置無意義。
5、在復位期間和剛復位后,復用功能未開啟,I/Oport被配置成浮空輸入模式。
6、全部port都有外部中斷能力。為了使用外部中斷線,port必須配置成輸入模式。
7、GPIO口的配置具有上鎖功能,當配置好GPIO口后,能夠通過程序鎖住配置組合,直到下次芯片復位才干解鎖。
8 、在STM32中怎樣配置片內外設使用的IOport
首先,一個外設經過 ①配置輸入的時鐘和 ②初始化后即被激活(開啟);③假設使用該外設的輸入輸出管腳,則須要配置相應的GPIOport(否則該外設相應的輸入輸出管腳能夠做普通GPIO管腳使用);④再對外設進行具體配置。
相應到外設的輸入輸出功能有下述三種情況:
一、外設相應的管腳為輸出:須要依據外圍電路的配置選擇相應的管腳為復用功能的推挽輸出或復用功能的開漏輸出。
二、外設相應的管腳為輸入:則依據外圍電路的配置能夠選擇浮空輸入、帶上拉輸入或帶下拉輸入。
三、ADC相應的管腳:配置管腳為模擬輸入。
假設把port配置成復用輸出功能。則引腳和輸出寄存器斷開。并和片上外設的輸出信號連接。將管腳配置成復用輸出功能后,假設外設沒有被激活,那么它的輸出將不確定。
3 通用IOport(GPIO)初始化:
1 )GPIO初始化
1、 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | B | C, ENABLE):使能APB2總線外設時鐘
2、 RCC_ APB2PeriphResetCmd (RCC_APB2Periph_GPIOA | B | C, DISABLE):釋放GPIO復位
2) 配置各個PINport(模擬輸入_AIN、輸入浮空_IN_FLOATING、輸入上拉_IPU、輸入下拉_IPD、開漏輸出_OUT_OD、推挽式輸出_OUT_PP、推挽式復用輸出_AF_PP、開漏復用輸出_AF_OD)
3) GPIO初始化完畢
推挽輸出:可以輸出高,低電平,連接數字器件; 推挽結構一般是指兩個三極管分別受兩互補信號的控制,總是在一個三極管導通的時候另一個截止。高低電平由IC的電源低定。
推挽電路是兩個參數相同的三極管或MOSFET,以推挽方式存在于電路中,各負責正負半周的波形放大任務,電路工作時,兩只對稱的功率開關管每次只有一個導通,所以導通損耗小、效率高。輸出既可以向負載灌電流,也可以從負載抽取電流。推拉式輸出級既提高電路的負載能力,又提高開關速度。
詳細理解:
如圖所示,推挽放大器的輸出級有兩個“臂”(兩組放大元件),一個“臂”的電流增加時,另一個“臂”的電流則減小,二者的狀態輪流轉換。對負載而言,好像是一個“臂”在推,一個“臂”在拉,共同完成電流輸出任務。當輸出高電平時,也就是下級負載門輸入高電平時,輸出端的電流將是下級門從本級電源經VT3拉出。這樣一來,輸出高低電平時,VT3 一路和 VT5 一路將交替工作,從而減低了功耗,提高了每個管的承受能力。又由于不論走哪一路,管子導通電阻都很小,使RC常數很小,轉變速度很快。因此,推拉式輸出級既提高電路的負載能力,又提高開關速度。
開漏輸出:輸出端相當于三極管的集電極。 要得到高電平狀態需要上拉電阻才行。 適合于做電流型的驅動,其吸收電流的能力相對強(一般20ma以內)。
評論
查看更多