GPIO引腳操作方法


普適的GPIO引腳操作方法

GPIO(General-Purpose IO Ports),即通用IO接口。GPIO的使用較為簡單,主要分為輸入和輸出兩種功能,用於實現一些簡單設備的控制。在作為輸入型GPIO的情況下,我們可以將該IO連接外部按鍵或者傳感器,用於檢測外部狀態。當作為輸出時,我們可以通過輸出高低電平來控制外部設備的運轉。

GPIO模塊一般結構

a. 有多組GPIO,每組有多個GPIO

b. 使能:電源/時鍾

c. 模式(Mode):引腳可用於GPIO或其他功能

d. 方向:引腳Mode設置為GPIO時,可以繼續設置它是輸出引腳,還是輸入引腳

e. 數值:對於輸出引腳,可以設置寄存器讓它輸出高、低電平, 對於輸入引腳,可以讀取寄存器得到引腳的當前電平。

 GPIO寄存器操作

a. 芯片手冊一般有相關章節,用來介紹:power/clock可以設置對應寄存器使能某個GPIO模塊(Module)有些芯片的GPIO是沒有使能開關的,即它總是使能的

b. 一個引腳可以用於GPIO、串口、USB或其他功能,有對應的寄存器來選擇引腳的功能

c. 對於已經設置為GPIO功能的引腳,有方向寄存器用來設置它的方向:輸出、輸入

d. 對於已經設置為GPIO功能的引腳,有數據寄存器用來寫、讀引腳電平狀態

 

GPIO寄存器的2種操作方法:

原則:不能影響到其他位

1) 直接讀寫:讀出、修改對應位、寫入

要設置bit n:

val = data_reg;

val = val | (1<<n);

data_reg = val;

要清除bit n:

val = data_reg;

val = val & ~(1<<n);

data_reg = val;

2) set-and-clear protocol:

set_reg, clr_reg, data_reg 三個寄存器對應的是同一個物理寄存器,

要設置bit n:set_reg = (1<<n);

要清除bit n:clr_reg = (1<<n);


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM