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