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