GPIO(英語:General-purpose input/output),通用型之輸入輸出的簡稱,功能類似8051的P0—P3,其接腳可以供使用者由程控自由使用,PIN腳依現(xiàn)實(shí)考量可作為通用輸入(GPI)或通用輸出(GPO)或通用輸入與輸出(GPIO),如當(dāng)clk generator, chip select等。
既然一個(gè)引腳可以用于輸入、輸出或其他特殊功能,那么一定有寄存器用來選擇這些功能。對(duì)于輸入,一定可以通過讀取某個(gè)寄存器來確定引腳電勢(shì)的高低;對(duì)于輸出,一定可以通過寫入某個(gè)寄存器來讓這個(gè)引腳輸出高電位或者低電位;對(duì)于其他特殊功能,則有另外的寄存器來控制它們。
優(yōu)點(diǎn)
GPIO的優(yōu)點(diǎn)(端口擴(kuò)展器)
gpio低功耗:GPIO具有更低的功率損耗(大約1μA,μC的工作電流則為100μA)。
集成IIC從機(jī)接口:GPIO內(nèi)置IIC從機(jī)接口,即使在待機(jī)模式下也能夠全速工作。
小封裝:GPIO器件提供最小的封裝尺寸 ― 3mm x 3mm QFN!
低成本:您不用為沒有使用的功能買單。
快速上市:不需要編寫額外的代碼、文檔,不需要任何維護(hù)工作。
靈活的燈光控制:內(nèi)置多路高分辨率的PWM輸出。
可預(yù)先確定響應(yīng)時(shí)間:縮短或確定外部事件與中斷之間的響應(yīng)時(shí)間。
更好的燈光效果:匹配的電流輸出確保均勻的顯示亮度。
布線簡單:僅需使用2條就可以組成IIC總線或3條組成SPI總線。
與ARM的幾組GPIO引腳,功能相似,GPxCON控制引腳功能,GPxDAT用于讀寫引腳數(shù)據(jù)。另外,GPxUP用于確定是否使用上拉電阻。x為A,B,,H/J,
GPAUP沒有上拉電阻。
寄存器
1. GPxCON寄存器
用于配置引腳功能。Configure PORT A 與 PORT B~PORT H/J在功能選擇上有所不同,GPACON中每一位對(duì)應(yīng)一根引腳,共23個(gè)引腳。當(dāng)某位被設(shè)為0時(shí)候,相應(yīng)引腳為輸出引腳。此時(shí)我們可以在GPADAT 中相應(yīng)的寫入 1或者 0 來讓此引腳輸出高電平或者低電平;當(dāng)某位被設(shè)為1時(shí),相應(yīng)引腳為地址線或用于地址控制,此時(shí)GPADATA無用。
一般而言 GPACON 通常被設(shè)為 1,以便訪問外部器件。
PORT B~PORT H/J
在寄存器操作方面完全相同,GPxCON中每兩位控制一根引腳,
00輸入01輸出
10 特殊功能11保留不用
2.GPxDAT寄存器
GPxDAT用于讀寫引腳,當(dāng)引腳被設(shè)為輸入時(shí)候,讀此寄存器可知道相應(yīng)引腳的電平狀態(tài)高還是低,當(dāng)引腳被設(shè)為輸出時(shí)候,寫此寄存器的位,可令引腳輸出高電平還是低電平。
3.GPxUP寄存器
GPxUP寄存器某位為1時(shí),相應(yīng)管腳沒有內(nèi)部上拉電阻;為0時(shí)候相應(yīng)管腳有內(nèi)部上拉電阻。
上拉電阻作用在于,當(dāng)GPIO引腳處于第三種狀態(tài)時(shí)候,既不是輸出高電平,也不是輸出低電平。而是呈現(xiàn)高阻態(tài),相當(dāng)于沒有接芯片。它的電平狀態(tài)由上下拉電阻決定。
參考資料 >
什么是GPIO?GPIO組成原理.搜狐網(wǎng).2024-09-05
GPIO詳解.博客園.2024-09-05
gpio.清華大學(xué)出版社.2024-09-07