1個(gè)GPIO可以代表多少種功能?關(guān)于GPIO復(fù)用那些事_第1頁
1個(gè)GPIO可以代表多少種功能?關(guān)于GPIO復(fù)用那些事_第2頁
1個(gè)GPIO可以代表多少種功能?關(guān)于GPIO復(fù)用那些事_第3頁
1個(gè)GPIO可以代表多少種功能?關(guān)于GPIO復(fù)用那些事_第4頁
1個(gè)GPIO可以代表多少種功能?關(guān)于GPIO復(fù)用那些事_第5頁
已閱讀5頁,還剩9頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

Word個(gè)GPIO可以代表多少種功能?關(guān)于GPIO復(fù)用那些事今天是(芯片)引腳解讀系列(視頻)的第二期,來說一說GPIO引腳——

以下是相關(guān)文字稿:

GPIO全名為(GeneralPurposeInputOutput),即通用輸入輸出端口,我們?cè)谑褂玫臅r(shí)候一般簡稱為“IO口”,在(芯片封裝)的時(shí)候,通過(電子)引線從芯片內(nèi)部引出到外部引腳,通過這些外部引腳,可以實(shí)現(xiàn)(傳感器)(信號(hào))讀取和控制信號(hào)輸出。

其實(shí)呀,我們?cè)趯W(xué)習(xí)(單片機(jī))的時(shí)候,就是在學(xué)習(xí)怎樣控制單片機(jī)采集外部信號(hào)和對(duì)外輸出控制信號(hào),這里的描述中,“怎樣控制”就是指控制邏輯或控制算法;“采集外部信號(hào)”就是指如何讀取外接輸入信號(hào)并解析的過程,可以根據(jù)外部信號(hào)的特性,配置合適的輸入模式,外部信號(hào)包括數(shù)字信號(hào)和(模擬)信號(hào);“輸出控制信號(hào)”就是指單片機(jī)以配置的輸出模式、輸出速率、信號(hào)類型(模擬/數(shù)字信號(hào))通過引腳對(duì)外部設(shè)備輸出驅(qū)動(dòng)信號(hào)。下面我們就來具體聊一聊單片機(jī)GPIO的特性與配置,這里我們以(STM32)Fxx系列的(DateSheet)為例講述。

我們?cè)诓榭碊ateSheetGPIO這部分時(shí),首先要看的就是GPIO相關(guān)的縮寫說明,這里主要是一些參數(shù)縮寫描述。

GPIO的三種工作模式:

(一)輸入模式

第一種是上拉輸入/下拉輸入/浮空輸入:

上拉輸入就是通過一個(gè)電阻將I/O連接到VCC或指定(電源),目的是為了保證在無信號(hào)輸入時(shí)輸入端的電平為高電平,而在信號(hào)輸入為低電平時(shí),輸入端的電平應(yīng)該也為低電平。同樣,下拉電阻它是為了保證無信號(hào)輸入時(shí)輸入端的電平為低電平,有輸入信號(hào)時(shí)輸入端保持高電平。浮空輸入呢就是信號(hào)輸入端既不上拉也不下拉,此時(shí),I/O口處于高阻態(tài),我們也將其稱為浮空輸入狀態(tài),在無信號(hào)輸入的情況下,此時(shí)I/O端口的電平是不確定的。了解了這幾種輸入模式的特性,那我們?cè)谠O(shè)計(jì)時(shí)該怎樣選擇配置呢?這里我們舉幾個(gè)例子:

1)獨(dú)立按鍵(無源電路):

這種連接方式,在不配置上拉/下拉模式時(shí),當(dāng)按鍵按下時(shí),具有確定的輸入狀態(tài),當(dāng)按鍵彈起時(shí),此時(shí)I/O端口的輸入狀態(tài)不確定,當(dāng)受到外部干擾時(shí),就容易出現(xiàn)誤觸發(fā)。所以此時(shí)就需要將I/O口的模式配置為上拉/下拉模式,在按鍵按下或彈起時(shí)均有確定轉(zhuǎn)態(tài)。

2)獨(dú)立按鍵(外接上拉/下拉電阻):

這個(gè)電路在按鍵按下或彈起時(shí),均具有確定的狀態(tài),此時(shí),我們可以將I/O配置為浮空輸入模式,除此之外,我們一般在電路中還可以并聯(lián)一個(gè)104的瓷片(電容),做按鍵去抖動(dòng)。

3)有源傳感器:

下面電路是有源傳感器與單片機(jī)I/O連接的電路,傳感器在正常工作狀態(tài)下,均具有確定的狀態(tài),此時(shí),我們可以將I/O配置為浮空輸入模式。

由這幾個(gè)實(shí)例可知,當(dāng)接入I/O的(硬件)工作在任意狀態(tài)下其輸出信號(hào)都有穩(wěn)定值(高電平或低電平),此時(shí),可以將單片機(jī)I/O配置為浮空輸入模式;當(dāng)接入I/O的硬件只能夠輸出一種確定狀態(tài)時(shí),為保證不受外部干擾,此時(shí),就需要將I/O配置為上拉/下拉模式。

在我們的設(shè)計(jì)中,也要靈活使用模式,因?yàn)閱纹瑱C(jī)自帶的上拉/下拉電阻為定值,有時(shí)不符合我們的設(shè)計(jì)要求,此時(shí),就需要自己選擇合適的外接上拉/下拉電阻。

第2種是模擬輸入,

就是將外部信號(hào)傳入單片機(jī)的A/D轉(zhuǎn)換器,然后單片機(jī)就可以將外部模擬量轉(zhuǎn)化為數(shù)字量,再進(jìn)行后續(xù)處理(數(shù)字濾波、閾值分析、計(jì)算等),帶A/D轉(zhuǎn)換功能的引腳都是芯片出廠就確定的。

高阻態(tài)模擬配置

連接到(ADC)輸入的模擬輸入

(二)輸出模式

第一種是開漏輸出與推挽輸出

單片機(jī)的I/O輸出結(jié)構(gòu)如上圖所示,由一個(gè)P-MOS與N-MOS組成,通過配置,可以通過控制P-MOS與N-MOS的導(dǎo)通,使輸出配置為開漏或推挽輸出。當(dāng)P-MOS禁止時(shí),輸出配置為開漏輸出,開漏模式一般應(yīng)用在(I2C)、SMBUS通訊等需要“線與”功能的總線電路中,在開漏輸出模式下,P-MOS管不工作,只有N-MOS管起作用。若輸出數(shù)據(jù)(寄存器)的值為0,則N-MOS導(dǎo)通,IO口輸出低電平;若輸出數(shù)據(jù)寄存器的值為1,則N-MOS截止;由于P-MOS不工作,此時(shí)IO口既不是高電平,也不是低電平,這種狀態(tài)被稱為高阻態(tài)。

當(dāng)P-MOS使能時(shí),輸出配置為推挽輸出,推挽輸出又叫推拉輸出,是最常見的輸出配置了,正如它的名字那樣,推挽輸出能夠驅(qū)動(dòng)輸出兩種電平。一種是拉接到地(從負(fù)載灌入(電流)),另一個(gè)被推到電源電壓(輸出電流到負(fù)載),在(集成電路)中一般使用兩個(gè)(晶體管)搭建,推挽輸出模式可以提供較強(qiáng)的驅(qū)動(dòng)力。推挽輸出模式下,若輸出數(shù)據(jù)寄存器的值為0,則N-MOS導(dǎo)通,P-MOS截止,IO口輸出低電平;若輸出數(shù)據(jù)寄存器的值為1,則N-MOS截止,P-MOS導(dǎo)通,IO口輸出高電平。

第二種是模擬輸出,就是將外部信號(hào)傳入單片機(jī)的D/A轉(zhuǎn)換器,然后單片機(jī)就可以將數(shù)字量轉(zhuǎn)換為模擬量輸出了,同樣,帶D/A轉(zhuǎn)換功能的引腳都是芯片出廠就確定的。

(三)復(fù)用模式

復(fù)用功能配置

我們知道,STM32Fxx內(nèi)部集成了很多的外設(shè)控制器,比如USART、S(PI)、bx(CAN)等等,這些外設(shè)控制器,也需要通過引腳與外設(shè)連接。復(fù)用功能是相對(duì)于單片機(jī)的引腳而言的,所謂“復(fù)用功能”,是指單片機(jī)的引腳既可以做普通GPIO使用,也可以作為內(nèi)部外設(shè)控制器的引腳來使用。例如,PA5可以作為普通GPIO來使用;其次,如果作為外設(shè)的引腳,它可以作為SPI1的(時(shí)鐘)(SPI1_SCK)、(DAC)的輸出通道1(DAC_OUT1)或者(AD)C的輸入通道5(ADC12_IN5),但是,PA5支持的三種外設(shè)(SPI1、DAC、ADC)在同一時(shí)刻只能選擇一種,選擇的方法是開啟相應(yīng)外設(shè)的時(shí)鐘,并使其它外設(shè)的時(shí)鐘保持關(guān)閉狀態(tài)。

那我們?cè)趺磁渲媚??這里主要有兩種配置方式,第一種就是通過代碼直接配置,在我學(xué)習(xí)STM32的時(shí)候,官方只提供了標(biāo)準(zhǔn)庫,我們?cè)谑褂玫臅r(shí)候需要按照標(biāo)準(zhǔn)庫開發(fā)指南來進(jìn)行配置,這種方式配置比較麻煩,也容易出錯(cuò),有時(shí)候移植代碼會(huì)造成功能沖突,我們?cè)趯懘a的時(shí)候,不怕報(bào)錯(cuò),就怕不報(bào)錯(cuò)功能還不對(duì),我在幾次項(xiàng)目中都發(fā)生過這種情況,通過查找,基本都是I/O配置沖突。

標(biāo)準(zhǔn)庫配置GPIO

這幾年隨著HAL庫的推廣,HAL庫得到了廣泛應(yīng)用,加上ST公司對(duì)STM32的生態(tài)環(huán)境打造,我們可以通過STM32CubeMX進(jìn)行配置,STM32CubeMX是STM32Cube生態(tài)里用來芯片初始化配置的圖形化配置工具。通過分步配置過程可以非常輕松地配置STM32微控制器和微處理器。

第一步包括選擇與所需外設(shè)集匹配的(意法半導(dǎo)體)STM32微控制器、微處理器或開發(fā)平臺(tái),同時(shí)包括在特定開發(fā)平臺(tái)上運(yùn)行的示例。對(duì)于微處理器,第二步允許配置GPIO和設(shè)置整個(gè)系統(tǒng)的時(shí)鐘,并交互地將外設(shè)分配給(Arm)Cortex-M或Cortex-A內(nèi)核,通過引腳分配沖突處理器、時(shí)鐘樹設(shè)置助手、功耗計(jì)算器,以及用于配置外設(shè)(如GPIO或USART)和中間件棧(如(USB)或TCP/IP)的實(shí)用工具來配置各個(gè)必需的(嵌入式軟件)。最終,用戶可以生成與所選配置匹配的軟件包。

然后,可以將生成的初始化工

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論