STM32 GPIO結(jié)構(gòu)圖講解 STM32中上拉電阻或下拉電阻的作用

2023-08-06 17:10:24 來源:STM32嵌入式開發(fā)

STM32中的GPIO

以STM32中的GPIO為例,如上圖是GPIO的結(jié)構(gòu)圖。另外關(guān)于GPIO工作原理,請(qǐng)移步此文:STM32中GPIO工作原理詳解。


【資料圖】

從上圖中標(biāo)號(hào)2處可以看到,上拉和下拉電阻上都有一個(gè)開關(guān),通過配置上下拉電阻開關(guān),可以控制引腳的默認(rèn)電平,這里有三種狀態(tài):

開啟上拉時(shí),引腳默認(rèn)電壓為高電平

開啟下拉時(shí),引腳默認(rèn)電壓為低電平

上拉和下拉不開啟時(shí),這種狀態(tài)我們稱為浮空模式

STM32上下拉及浮空模式的配置是通過GPIOx_CRL和GPIOx_CRH寄存器控制的,可以通過《STM32F1xx 中文參考手冊(cè)》查閱。

開啟上拉電阻或下拉電阻的作用

STM32內(nèi)部的上拉其實(shí)是一個(gè)弱上拉,也就是說通過此上拉電阻輸出的電流很小,如果想要輸出一個(gè)大電流。那么就需要外接上拉電阻了,其實(shí)就是增加導(dǎo)線的輸出電流。相關(guān)文章:為什么單片機(jī)的I/O口需要驅(qū)動(dòng)?

下拉電阻情況相反,讓STM32的CPU引腳輸出低電平,結(jié)果由于后續(xù)電路影響輸出的低電平達(dá)不到GND。所以接個(gè)下拉電阻,其實(shí)就是為了降低導(dǎo)線的輸出電流。

另外當(dāng)上下拉電阻都不開啟,此時(shí)是浮空模式,引腳的電壓是不確定的,此模式下的管腳電壓會(huì)時(shí)不時(shí)改變。

所以為了防止引腳懸空,產(chǎn)生積累電荷、靜電荷,造成電路不穩(wěn)定。一般情況下,我們都會(huì)給引腳設(shè)置成上拉或者下拉模式,使它有一個(gè)確定的默認(rèn)電平狀態(tài)。

以上拉電阻舉例,在STM32剛上電的時(shí)候,芯片引腳電平是不確定的。特別引腳是接按鍵的時(shí)候,必須給他個(gè)確定的電平。下拉電阻的作用就是,強(qiáng)制讓電平保持在低電平。

上下拉電阻阻值的大小

根據(jù)拉電阻的阻值大小,可以分為強(qiáng)拉或弱拉(weak pull-up/down)。拉電阻阻值越小則表示電平能力越強(qiáng),為強(qiáng)拉,可以抵抗外部噪聲的能力也越強(qiáng),相應(yīng)的功耗也越大。

舉個(gè)例子:

按鍵的上拉電阻可以選擇3.3k、4.7k、5.1k、10k等,但是電阻越小,電流越大,功耗也越大。10k的上拉電阻帶來的電流,是大多數(shù)芯片所能識(shí)別到的引腳電流,如果電阻太大,電流太小,引腳識(shí)別不了,所以10k是個(gè)折中的方案。這里的電流,簡(jiǎn)單來說是根據(jù)公式VDD/R拉電阻計(jì)算出來的。

審核編輯:湯梓紅

標(biāo)簽:

上一篇:LED背光是什么?有哪些特點(diǎn)?
下一篇:最后一頁